
/* WARNING: Removing unreachable block (ram,0x00255000) */
/* WARNING: Removing unreachable block (ram,0x00255118) */
/* WARNING: Removing unreachable block (ram,0x00254944) */
/* WARNING: Removing unreachable block (ram,0x0025496c) */
/* WARNING: Removing unreachable block (ram,0x00254a08) */
/* WARNING: Removing unreachable block (ram,0x00254978) */
/* WARNING: Removing unreachable block (ram,0x00254a30) */
/* WARNING: Removing unreachable block (ram,0x0025497c) */
/* WARNING: Removing unreachable block (ram,0x00254990) */
/* WARNING: Removing unreachable block (ram,0x0025505c) */
/* WARNING: Removing unreachable block (ram,0x002549bc) */
/* WARNING: Removing unreachable block (ram,0x002549f0) */
/* WARNING: Removing unreachable block (ram,0x00254a3c) */
/* WARNING: Removing unreachable block (ram,0x00254a40) */
/* WARNING: Removing unreachable block (ram,0x00254ac0) */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": 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 */

Image * ReadMPCImage(ImageInfo *image_info,ExceptionInfo *exception)

{
  bool bVar1;
  ushort uVar2;
  undefined8 uVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined *puVar6;
  undefined *puVar7;
  int iVar8;
  ImageInfo *pIVar9;
  ImageInfo *pIVar10;
  int iVar11;
  FILE *pFVar12;
  int iVar13;
  uint uVar14;
  Image *pIVar15;
  void *pvVar16;
  size_t sVar17;
  double *pdVar18;
  FILE *pFVar19;
  undefined4 *puVar20;
  int *piVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  int iVar25;
  int iVar26;
  undefined4 uVar27;
  int iVar28;
  FILE *pFVar29;
  byte *pbVar30;
  int *piVar31;
  undefined1 *puVar32;
  undefined1 *puVar33;
  undefined1 *puVar34;
  CompressionType CVar35;
  int iVar36;
  int iVar37;
  FILE *pFVar38;
  int iVar39;
  ImageInfo *pIVar40;
  undefined *puVar41;
  char *pcVar42;
  undefined1 uVar44;
  uint uVar43;
  FILE *pFVar45;
  char *pcVar46;
  int iVar47;
  int iVar48;
  int iVar49;
  int iVar50;
  undefined1 uVar51;
  undefined1 uVar52;
  char **ppcVar53;
  int iVar54;
  undefined4 uVar55;
  int iVar56;
  undefined4 unaff_s3;
  FILE *unaff_s4;
  FILE *unaff_s5;
  int iVar57;
  undefined1 uVar58;
  FILE *unaff_s6;
  FILE *unaff_s7;
  byte *pbVar59;
  undefined *puVar60;
  FILE *unaff_s8;
  code *pcVar61;
  double dVar62;
  double dVar63;
  float fVar65;
  double dVar64;
  undefined2 uVar66;
  double dVar67;
  float fVar68;
  double dVar69;
  double dVar70;
  double in_f20_21;
  double dVar71;
  double in_f22_23;
  double in_f24_25;
  double dVar72;
  double dVar73;
  double dVar74;
  undefined8 uVar75;
  FILE *pFStack_5188;
  FILE aFStack_5150 [27];
  undefined1 auStack_4144 [4096];
  int iStack_3144;
  ImageInfo *pIStack_3140;
  ImageInfo *pIStack_313c;
  undefined8 uStack_3138;
  FILE *pFStack_3130;
  FILE *pFStack_312c;
  FILE *pFStack_3128;
  FILE *pFStack_3124;
  FILE *pFStack_3120;
  code *pcStack_311c;
  double dStack_3118;
  double dStack_3110;
  double dStack_3108;
  undefined8 local_30d8;
  undefined *local_30d0;
  char *local_30cc;
  ImageInfo *local_30c8;
  int local_309c;
  MagickOffsetType offset;
  GeometryInfo geometry_info;
  char cache_filename [4096];
  char id [4096];
  char keyword [4096];
  
  puVar60 = PTR___stack_chk_guard_003a9230;
  uVar75 = CONCAT44(exception,unaff_s3);
  iVar8 = *(int *)PTR___stack_chk_guard_003a9230;
  if (image_info == (ImageInfo *)0x0) {
    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)
                                 (PTR_LAB_003a88e0 + 0xd78,
                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,
                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);
    return pIVar15;
  }
  if (image_info->signature != 0xabacadab) {
    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)
                                 (PTR_LAB_003a88e0 + 0xda0,
                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,
                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);
    return pIVar15;
  }
  if (image_info->debug != MagickFalse) {
    local_30d8._4_4_ = image_info->filename;
    local_30d8._0_4_ = (ExceptionInfo *)(PTR_s_t_to_left_003a88e4 + -0x62ac);
    (*(code *)PTR_LogMagickEvent_003a91e0)
              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,
               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);
  }
  if (exception == (ExceptionInfo *)0x0) {
    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)
                                 (PTR_LAB_003a88e0 + 0x1cac,
                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,
                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);
    return pIVar15;
  }
  if (exception->signature != 0xabacadab) {
    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)
                                 (PTR_LAB_003a88e0 + 0x294c,
                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,
                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);
    return pIVar15;
  }
  pIVar9 = (ImageInfo *)(*(code *)PTR_AcquireImage_003a960c)(image_info,exception);
  pFVar45 = (FILE *)0x2;
  pIVar40 = pIVar9;
  local_309c = (*(code *)PTR_OpenBlob_003a924c)(image_info,pIVar9,2,exception);
  if (local_309c == 0) {
    (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);
    pIVar15 = (Image *)0x0;
  }
  else {
    pFVar45 = (FILE *)0xffa;
    (*(code *)PTR_CopyMagickString_003a983c)((ImageInfo *)cache_filename,pIVar9->magick + 0x130);
    pIVar40 = (ImageInfo *)cache_filename;
    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);
    unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);
    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
    puVar4 = PTR_LAB_003a88e0;
    uVar75 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);
    if (unaff_s8 == (FILE *)0xffffffff) {
      (*(code *)PTR_DestroyImage_003a8f4c)(pIVar9);
      pIVar15 = (Image *)0x0;
      image_info = (ImageInfo *)cache_filename;
      uVar75 = CONCAT44(exception,unaff_s3);
    }
    else {
      unaff_s5 = (FILE *)keyword;
      pFVar45 = (FILE *)0x1000;
      id[0] = '\0';
      unaff_s4 = (FILE *)((int)unaff_s8 << 1);
      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);
      offset._4_4_ = 0;
      offset._0_4_ = 0;
      pIVar10 = (ImageInfo *)(*(code *)PTR___ctype_b_loc_003a9434)();
      in_f24_25 = *(double *)(puVar5 + -0x5b00);
      in_f22_23 = *(double *)(puVar4 + 0x1418);
      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);
      unaff_s7 = (FILE *)&geometry_info;
      do {
        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;
        (*(code *)PTR_SetGeometryInfo_003a9970)((FILE *)&geometry_info);
        unaff_s6 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);
        iVar11 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);
        CVar35 = pIVar10->compression;
        pIVar9->page = &DAT_00000008;
        pFVar29 = (FILE *)(unaff_s4->_shortbuf + (CVar35 - 0x47));
        pIVar9->temporary = 0x10;
        uVar2 = *(ushort *)&pFVar29->_flags;
        pFVar12 = unaff_s8;
LAB_0025399c:
        unaff_s4 = pFVar29;
        if ((uVar2 & 0x80) != 0) {
          do {
            unaff_s4 = pFVar29;
            if (pFVar12 == (FILE *)&DAT_0000003a) break;
            if (pFVar12 == (FILE *)0x7b) {
              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);
              unaff_s8 = pFVar12;
              if (pFVar12 == (FILE *)0x0) {
LAB_00254658:
                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);
                uVar55 = 0x10e;
                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;
                local_30d8._0_4_ = (ExceptionInfo *)0x190;
                goto LAB_002546ac;
              }
              uVar14 = 0x1000;
              pFVar29 = (FILE *)0x5c;
LAB_0025451c:
              uVar75 = CONCAT44(pFVar12,uVar14);
              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);
              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;
              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&
                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {
                while( true ) {
                  puVar41 = PTR_ReadBlobByte_003a97f0;
                  puVar7 = PTR_ResizeQuantumMemory_003a9420;
                  if (uVar14 <= iVar13 + 1U) {
                    uVar14 = uVar14 * 2;
                    *(undefined1 *)&unaff_s8->_flags = 0;
                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);
                    uVar75 = CONCAT44(pFVar12,uVar14);
                    unaff_s4 = pFVar29;
                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;
                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);
                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);
                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;
                    goto LAB_0025451c;
                  }
                  *(char *)&unaff_s8->_flags = (char)unaff_s7;
                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);
                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);
                  if (unaff_s7 != (FILE *)0x5c) break;
LAB_00254578:
                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);
                  iVar13 = (int)unaff_s8 - (int)pFVar12;
                }
              }
              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;
              *(undefined1 *)&unaff_s8->_flags = 0;
              pFVar45 = pFVar12;
              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);
              (*(code *)PTR_DestroyString_003a9074)(pFVar12);
              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);
            }
            else if ((uVar2 & 0x800) == 0) {
              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);
            }
            else {
              pFVar29 = unaff_s5;
              if (pFVar12 == (FILE *)0x3d) {
                iVar13 = 0x7a;
              }
              else {
                uVar75 = 0xffffffff0000003d;
                do {
                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {
                    *(char *)&pFVar29->_flags = (char)pFVar12;
                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);
                  }
                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);
                  if (pFVar12 == (FILE *)0xffffffff) {
                    CVar35 = pIVar10->compression;
                    iVar13 = -2;
                    uVar75 = 0xffffffff0000003d;
                    goto LAB_00253a18;
                  }
                } while (pFVar12 != (FILE *)0x3d);
                CVar35 = pIVar10->compression;
                iVar13 = 0x7a;
              }
LAB_00253a18:
              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);
              uVar43 = (uint)uVar75;
              *(char *)&pFVar29->_flags = '\0';
              uVar2 = *(ushort *)(CVar35 + iVar13);
              while ((uVar2 & 0x20) != 0) {
                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);
                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);
              }
              unaff_s7 = unaff_s6;
              if (pFVar12 == (FILE *)0x3d) {
                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);
                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {
                  uVar75 = CONCAT44(uVar14,uVar43);
                }
                else {
                  uVar43 = 0x7d;
                  do {
                    iVar13 = (int)unaff_s7 - (int)unaff_s6;
                    unaff_s4 = pFVar29;
                    while( true ) {
                      pFVar29 = unaff_s7;
                      puVar7 = PTR_ResizeQuantumMemory_003a9420;
                      if (uVar14 <= iVar13 + 1U) {
                        uVar14 = uVar14 * 2;
                        *(undefined1 *)&pFVar29->_flags = 0;
                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);
                        unaff_s7 = pFVar29;
                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;
                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);
                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);
                      }
                      puVar7 = PTR_ReadBlobByte_003a97f0;
                      uVar3 = CONCAT44(uVar14,0x7d);
                      uVar75 = CONCAT44(uVar14,0x7d);
                      *(char *)&pFVar29->_flags = (char)pFVar12;
                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);
                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);
                      if (pFVar12 != (FILE *)0x5c) break;
                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);
                      puVar7 = PTR_ReadBlobByte_003a97f0;
                      if (pFVar12 == (FILE *)0x7d) {
                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;
                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);
                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);
                        break;
                      }
                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;
                      iVar13 = (int)unaff_s7 - (int)unaff_s6;
                      unaff_s4 = pFVar29;
                      uVar75 = uVar3;
                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;
                    }
                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;
LAB_002547c4:
                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)
                    goto LAB_00253a68;
LAB_002547e0:
                    uVar75 = uVar3;
                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));
                }
joined_r0x00254fe4:
                unaff_s4 = pFVar29;
                if (unaff_s6 == (FILE *)0x0) {
LAB_00254848:
                  uVar55 = 0x14c;
                  goto LAB_00254850;
                }
              }
LAB_00253a68:
              *(undefined1 *)&unaff_s7->_flags = 0;
              if (*(char *)&unaff_s6->_flags == '{') {
                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);
                (*(code *)PTR_CopyMagickString_003a983c)
                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);
              }
              uVar14 = (byte)keyword[0] - 0x41 & 0xff;
              if (uVar14 < 0x37) {
                    /* WARNING: Could not emulate address calculation at 0x00253a98 */
                    /* WARNING: Treating indirect jump as call */
                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();
                return pIVar15;
              }
              pFVar45 = unaff_s6;
              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);
            }
            CVar35 = pIVar10->compression;
            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);
            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;
            do {
              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);
              CVar35 = pIVar10->compression;
              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);
            } while ((uVar2 & 0x20) != 0);
            unaff_s4 = pFVar29;
            if ((uVar2 & 0x80) == 0) break;
          } while( true );
        }
        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);
        (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);
        iVar13 = (*(code *)PTR_LocaleCompare_003a9110)
                           (id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);
        unaff_s8 = pFVar12;
        if ((((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||
              (pIVar9->temporary == MagickFalse)) ||
             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||
            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||
             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||
              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))) ||
           ((char *)0x3f < pIVar9->page + -1)) {
          uVar55 = 0x31d;
          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
          local_30d8._4_4_ = PTR_s_courses_003a88ec + -400;
          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;
LAB_002546ac:
          local_30cc = image_info->filename;
          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55);
          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);
          (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);
          pIVar15 = (Image *)0x0;
          image_info = pIVar10;
          goto LAB_002546dc;
        }
        iVar13 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);
        if (iVar11 != iVar13) {
          uVar55 = 0x323;
          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460;
          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;
          goto LAB_002546ac;
        }
        if (pIVar9->file != (FILE *)0x0) {
          unaff_s6 = (FILE *)0x0;
          puVar32 = (undefined1 *)0x1000;
          pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);
          pIVar9->blob = pFVar29;
          do {
            *(undefined1 *)&pFVar29->_flags = 0;
            pFVar19 = pFVar29;
            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {
              puVar32 = (undefined1 *)((int)puVar32 * 2);
              uVar75 = CONCAT44(puVar32,0xffffffff);
              pFVar45 = (FILE *)0x1;
              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)
                                          (pIVar9->blob,puVar32 + 0x1000);
              pIVar9->blob = pvVar16;
              if (pvVar16 == (void *)0x0) {
                uVar55 = 0x341;
                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;
                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;
                goto LAB_002546ac;
              }
              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);
            }
            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);
            uVar75 = CONCAT44(puVar32,0xffffffff);
            if (iVar11 == -1) break;
            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);
            *(char *)&pFVar19->_flags = (char)iVar11;
            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);
            unaff_s4 = pFVar19;
            uVar75 = CONCAT44(puVar32,0xffffffff);
          } while (iVar11 != 0);
        }
        pIVar40 = (ImageInfo *)0x0;
        unaff_s4 = (FILE *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9);
        if (pIVar9->compression == B44Compression) {
          pcVar42 = pIVar9->scenes;
          uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);
          uVar14 = (uint)((int)unaff_s4 * 3) >> 3;
          uVar43 = uVar14 * (int)pcVar42;
          if ((int)((ulonglong)uVar75 >> 0x20) == 0) {
            uVar43 = (uint)((uint)uVar75 < uVar43);
            uVar75 = CONCAT44(uVar14,uVar43);
            if (uVar43 != 0) {
              uVar55 = 0x37d;
              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;
              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;
              goto LAB_002546ac;
            }
          }
          pIVar40 = (ImageInfo *)0x58;
          sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1);
          pIVar9->scene = sVar17;
          if (sVar17 == 0) {
            uVar55 = 0x381;
LAB_00254850:
            uVar75 = CONCAT44(uVar14,uVar43);
            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;
            local_30d8._0_4_ = (ExceptionInfo *)0x190;
            unaff_s8 = pFVar12;
            goto LAB_002546ac;
          }
          uVar75 = CONCAT44(uVar14,uVar43);
          if (pIVar9->scenes != (char *)0x0) {
            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);
            if (pFVar29 == (FILE *)0x0) {
              uVar55 = 0x38a;
              uVar43 = 0;
              goto LAB_00254850;
            }
            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);
            pFVar45 = pFVar29;
            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);
            pcVar42 = pIVar9->scenes;
            iVar13 = (int)pcVar42 * uVar14;
            uVar75 = CONCAT44(iVar13,pFVar29);
            if (iVar13 != iVar11) {
              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);
              uVar55 = 0x390;
              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;
              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;
              goto LAB_002546ac;
            }
            if (unaff_s4 == (FILE *)0x10) {
              if (0 < (int)pcVar42) {
                pFVar19 = pFVar29;
                pdVar18 = (double *)(pIVar9->scene + 0x28);
                do {
                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);
                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;
                  pdVar18[1] = (double)(ushort)pFVar19->_flags;
                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);
                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;
                  pdVar18[2] = (double)(int)pIVar40;
                  pFVar19 = pFVar38;
                  pdVar18 = pdVar18 + 0xb;
                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));
              }
            }
            else if (unaff_s4 == (FILE *)0x20) {
              if (0 < (int)pcVar42) {
                dVar73 = *(double *)(puVar4 + 0x1418);
                dVar72 = *(double *)(puVar5 + -0x5b00);
                pFVar19 = pFVar29;
                pdVar18 = (double *)(pIVar9->scene + 0x28);
                do {
                  pFVar45 = pFVar19;
                  dVar74 = (double)pFVar45->_flags;
                  if (pFVar45->_flags < 0) {
                    dVar74 = dVar74 + dVar73;
                  }
                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);
                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;
                  if ((int)pFVar45->_IO_read_ptr < 0) {
                    dVar74 = dVar74 + dVar73;
                  }
                  pdVar18[1] = (double)(float)(dVar74 / dVar72);
                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;
                  dVar74 = (double)(int)pIVar40;
                  if ((int)pIVar40 < 0) {
                    dVar74 = dVar74 + in_f22_23;
                  }
                  pdVar18[2] = (double)(float)(dVar74 / dVar72);
                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;
                  pdVar18 = pdVar18 + 0xb;
                } while (&pFVar45->_IO_read_base !=
                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));
              }
            }
            else {
              if (unaff_s4 != (FILE *)&DAT_00000008) {
                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);
                uVar55 = 0x398;
                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;
                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;
                uVar75 = CONCAT44(iVar13,pFVar29);
                goto LAB_002546ac;
              }
              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);
              if (0 < (int)pcVar42) {
                pdVar18 = (double *)(pIVar9->scene + 0x28);
                pFVar19 = pFVar29;
                do {
                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);
                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);
                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *
                                              in_f20_21);
                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);
                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);
                  pdVar18 = pdVar18 + 0xb;
                  pFVar19 = pFVar38;
                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);
              }
            }
            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);
            uVar75 = CONCAT44(iVar13,pFVar29);
          }
        }
        uVar55 = (undefined4)((ulonglong)uVar75 >> 0x20);
        uVar27 = (undefined4)uVar75;
        if (((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) &&
           ((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))
           ) {
          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);
          if (local_309c != 0) goto LAB_002548a8;
          goto LAB_00253dbc;
        }
        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);
        if (iVar11 == 0) {
LAB_002550a8:
          uVar55 = 0x3db;
          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
          local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284;
          local_30d8._0_4_ = (ExceptionInfo *)0x1d1;
          goto LAB_002546ac;
        }
        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);
        if (iVar11 == 0) goto LAB_002550a8;
        pFVar45 = (FILE *)0x1;
        pIVar40 = (ImageInfo *)cache_filename;
        local_30d8._0_4_ = exception;
        iVar11 = (*(code *)PTR_PersistPixelCache_003a8dc0)
                           (pIVar9,(ImageInfo *)cache_filename,1,&offset);
        if (iVar11 == 0) {
          (*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception);
          uVar55 = 0x3e3;
          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450;
          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;
          pIVar10 = (ImageInfo *)exception;
          goto LAB_002546ac;
        }
        iVar11 = (*(code *)PTR_EOFBlob_003a9748)(pIVar9);
        if (iVar11 != 0) {
          puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
          pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20);
          local_30cc = pIVar9->magick + 0x130;
          local_30d0 = PTR_LAB_003a88e0 + 0xe78;
          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
          local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c;
          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;
          local_30c8 = pIVar10;
          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000);
          (*(code *)PTR_DestroyString_003a9074)(pIVar10);
          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);
LAB_002548a8:
          pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);
          image_info = pIVar10;
          unaff_s8 = pFVar12;
          uVar75 = CONCAT44(uVar55,uVar27);
          goto LAB_002546dc;
        }
        uVar55 = 0xffffffff;
        uVar75 = CONCAT44(0xffffffff,uVar27);
        while( true ) {
          unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);
          unaff_s4 = (FILE *)((int)unaff_s8 * 2);
          if ((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0) break;
          bVar1 = unaff_s8 == (FILE *)0xffffffff;
          unaff_s8 = pFVar12;
          if (bVar1) goto LAB_0025489c;
        }
        if (unaff_s8 == (FILE *)0xffffffff) {
LAB_0025489c:
          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);
          pFVar12 = unaff_s8;
          goto LAB_002548a8;
        }
        pIVar40 = pIVar9;
        pFVar45 = (FILE *)exception;
        (*(code *)PTR_AcquireNextImage_003a8f90)(image_info);
        iVar11 = (*(code *)PTR_GetNextImageInList_003a9470)(pIVar9);
        if (iVar11 == 0) break;
        pIVar9 = (ImageInfo *)(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9);
        uVar75 = (*(code *)PTR_TellBlob_003a931c)(pIVar9);
        pFVar45 = (FILE *)((ulonglong)uVar75 >> 0x20);
        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);
        pIVar40 = (ImageInfo *)(PTR_s_courses_003a88ec + -0x168);
        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(pIVar9,pIVar40,pFVar45,(int)uVar75);
      } while (local_309c != 0);
      (*(code *)PTR_CloseBlob_003a9688)(pIVar9);
      pFVar12 = unaff_s8;
LAB_00253dbc:
      pIVar15 = (Image *)(*(code *)PTR_DestroyImageList_003a9510)(pIVar9);
      image_info = pIVar10;
      unaff_s8 = pFVar12;
    }
  }
LAB_002546dc:
  if (iVar8 == *(int *)puVar60) {
    return pIVar15;
  }
  pcVar61 = WriteMPCImage;
  puVar60 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  piVar21 = *(int **)(puVar60 + 0x153c6c);
  iStack_3144 = *piVar21;
  pIStack_3140 = pIVar9;
  pIStack_313c = image_info;
  pFStack_3130 = unaff_s4;
  pFStack_312c = unaff_s5;
  pFStack_3128 = unaff_s6;
  pFStack_3124 = unaff_s7;
  pFStack_3120 = unaff_s8;
  pcStack_311c = pcVar61;
  dStack_3118 = in_f20_21;
  dStack_3110 = in_f22_23;
  dStack_3108 = in_f24_25;
  uStack_3138 = uVar75;
  if (iVar8 == 0) {
    pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))
                                 (*(int *)(puVar60 + 0x15331c) + 0xd78,
                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x483,
                                  *(int *)(puVar60 + 0x153388) + -0x7274);
    return pIVar15;
  }
  pFVar12 = *(FILE **)(puVar60 + 0x153388);
  if (*(int *)(iVar8 + 0x3214) != -0x54535255) {
    pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))
                                 (*(int *)(puVar60 + 0x15331c) + 0xda0,
                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x484,
                                  &pFVar12[-0xc1]._IO_save_base);
    return pIVar15;
  }
  if (pIVar40 != (ImageInfo *)0x0) {
    if (*(int *)((int)&pIVar40[1].background_color.green + 4) != -0x54535255) {
      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))
                                   (*(int *)(puVar60 + 0x153324) + -0x3784,
                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x486,
                                    &pFVar12[-0xc1]._IO_save_base);
      return pIVar15;
    }
    if (pIVar40[1].background_color.depth != 0) {
      (**(code **)(puVar60 + 0x153c1c))
                (0x8000,*(int *)(puVar60 + 0x153388) + -0x74dc,
                 *(int *)(puVar60 + 0x153388) + -0x7284,0x488,*(int *)(puVar60 + 0x153320) + -0x62ac
                 ,pIVar40->magick + 0x130);
    }
    if (pFVar45 == (FILE *)0x0) {
      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))
                                   (*(int *)(puVar60 + 0x15331c) + 0x1cac,
                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x489,
                                    *(int *)(puVar60 + 0x153388) + -0x7274);
      return pIVar15;
    }
    if (pFVar45->_IO_buf_base != (char *)0xabacadab) {
      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))
                                   (*(int *)(puVar60 + 0x15331c) + 0x294c,
                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x48a,
                                    *(int *)(puVar60 + 0x153388) + -0x7274);
      return pIVar15;
    }
    pFVar12 = pFVar45;
    iVar11 = (**(code **)(puVar60 + 0x153c88))(iVar8,pIVar40,4,pFVar45);
    if (iVar11 == 0) {
LAB_0025569c:
      pIVar15 = (Image *)0x0;
    }
    else {
      iVar54 = *(int *)(puVar60 + 0x15331c);
      iVar56 = *(int *)(puVar60 + 0x15331c);
      iVar57 = *(int *)(puVar60 + 0x15331c);
      (**(code **)(puVar60 + 0x154278))(auStack_4144,pIVar40->magick + 0x130,0xffa);
      ppcVar53 = &aFStack_5150[0]._IO_read_base;
      iVar11 = *(int *)(puVar60 + 0x153388);
      iVar13 = *(int *)(puVar60 + 0x153388);
      iVar22 = *(int *)(puVar60 + 0x153388);
      (**(code **)(puVar60 + 0x1539e4))(*(int *)(puVar60 + 0x153328) + -0x50b8,auStack_4144);
      aFStack_5150[0]._IO_read_ptr = (char *)0x0;
      aFStack_5150[0]._flags = 0;
      (**(code **)(puVar60 + 0x153cb4))(pIVar40);
      dVar74 = *(double *)(iVar54 + 0x1418);
      iVar23 = *(int *)(puVar60 + 0x153388);
      dVar73 = *(double *)(iVar56 + 0x1400);
      iVar36 = *(int *)(puVar60 + 0x153388);
      dVar72 = *(double *)(iVar57 + 0x1410);
      iVar24 = *(int *)(puVar60 + 0x153388);
      pFStack_5188 = (FILE *)0x0;
      iVar25 = *(int *)(puVar60 + 0x153388);
      do {
        (**(code **)(puVar60 + 0x154260))(pIVar40,pIVar40->compression,pFVar45);
        iVar26 = (**(code **)(puVar60 + 0x153c24))(pIVar40,1);
        if (pIVar40->compression == B44Compression) {
          pcVar42 = pIVar40->page;
          if (pcVar42 == (char *)0x0) {
            pcVar42 = (char *)0x1;
          }
          else {
            pcVar46 = (char *)0x0;
            if (pcVar42 < (char *)0x41) {
              pcVar46 = pcVar42;
            }
            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));
            if (((uint)(pcVar46 + -1) & 0x20) != 0) {
              pcVar42 = (char *)0x0;
            }
          }
          if (pcVar42 < pIVar40->scenes) {
            (**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);
          }
        }
        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar11 + -0x7434);
        uVar55 = (**(code **)(puVar60 + 0x154128))(0);
        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar13 + -0x741c,uVar55);
        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
        uVar55 = (**(code **)(puVar60 + 0x15379c))(5,pIVar40->compression);
        dVar71 = (double)(int)pIVar40->scenes;
        if ((int)pIVar40->scenes < 0) {
          dVar71 = dVar71 + dVar74;
        }
        uVar27 = (**(code **)(puVar60 + 0x15379c))(0x3a,*(undefined4 *)(pIVar40->magick + 0xac));
        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar22 + -0x7990,uVar55,dVar71,uVar27);
        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar36 + -0x7404);
        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
        dVar71 = (double)(int)pIVar40->page;
        if ((int)pIVar40->page < 0) {
          dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);
        }
        dVar62 = (double)(int)pIVar40->extract;
        if ((int)pIVar40->extract < 0) {
          dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);
        }
        dVar63 = (double)(int)pIVar40->size;
        if ((int)pIVar40->size < 0) {
          dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);
        }
        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar23 + -0x73d0);
        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
        if (*(int *)(pIVar40->magick + 0x90) != 0) {
          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x49);
          (**(code **)(puVar60 + 0x1537b8))
                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,
                     dVar71);
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
        }
        uVar55 = (**(code **)(puVar60 + 0x15379c))(9,pIVar40->orientation);
        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar24 + -0x7928,uVar55);
        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
        if (*(int *)(pIVar40->magick + 0x44) == 0) {
          pcVar61 = *(code **)(puVar60 + 0x15379c);
          if (*(int *)(pIVar40->magick + 0x4c) == 0) goto LAB_00255a3c;
LAB_002565f0:
          uVar55 = (*pcVar61)(0x18);
          (**(code **)(puVar60 + 0x1537b8))
                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55);
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
          if (pIVar40->temporary != MagickFalse) {
            pcVar61 = *(code **)(puVar60 + 0x15379c);
            goto LAB_0025663c;
          }
        }
        else {
          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38);
          (**(code **)(puVar60 + 0x1537b8))
                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55);
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
          if (*(int *)(pIVar40->magick + 0x4c) != 0) {
            pcVar61 = *(code **)(puVar60 + 0x15379c);
            goto LAB_002565f0;
          }
LAB_00255a3c:
          pcVar61 = *(code **)(puVar60 + 0x15379c);
          if (pIVar40->temporary != MagickFalse) {
LAB_0025663c:
            uVar55 = (*pcVar61)(0xe);
            dVar63 = (double)(int)pIVar40->adjoin;
            if ((int)pIVar40->adjoin < 0) {
              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);
            }
            (**(code **)(puVar60 + 0x1537b8))
                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);
            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
          }
        }
        if (pIVar40->stream != (StreamHandler)0x0) {
          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x41);
          (**(code **)(puVar60 + 0x1537b8))
                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55);
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
        }
        dVar71 = *(double *)(pIVar40->magick + 8);
        dVar67 = *(double *)(pIVar40->magick + 0x10);
        if ((dVar71 != 0.0) || (dVar67 != 0.0)) {
          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc);
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
          dVar63 = dVar71;
          dVar62 = dVar67;
        }
        iVar37 = *(int *)(pIVar40->magick + 0x18);
        iVar39 = *(int *)(pIVar40->magick + 0x1c);
        iVar47 = *(int *)(pIVar40->magick + 0x20);
        iVar28 = *(int *)(pIVar40->magick + 0x24);
        if ((iVar37 == 0) && (iVar39 == 0)) {
          if ((iVar47 != 0) || (iVar28 != 0)) {
            uVar55 = SUB84(dVar63,0);
            dVar63 = (double)CONCAT44(iVar28,uVar55);
            (**(code **)(puVar60 + 0x1537b8))
                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,
                       dVar62);
            goto LAB_00255ed4;
          }
        }
        else {
          dVar62 = (double)iVar39;
          if (iVar39 < 0) {
            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);
          }
          dVar63 = (double)iVar37;
          if (iVar37 < 0) {
            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);
          }
          (**(code **)(puVar60 + 0x1537b8))
                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,
                     (double)iVar47,(double)iVar28);
LAB_00255ed4:
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
        }
        iVar28 = *(int *)(pIVar40->magick + 0x8c);
        if ((*(int *)(pIVar40->magick + 0x88) != 0) ||
           (pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0)) {
          dVar63 = (double)CONCAT44(iVar28,SUB84(dVar63,0));
          (**(code **)(puVar60 + 0x1537b8))
                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,
                     *(int *)(pIVar40->magick + 0x88),iVar28);
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
          pcVar61 = *(code **)(puVar60 + 0x153eac);
        }
        iVar28 = (*pcVar61)(pIVar40);
        iVar37 = *(int *)(pIVar40->magick + 0x5c);
        if (iVar28 == 0) {
          iVar28 = (**(code **)(puVar60 + 0x1536e8))(pIVar40);
          if (iVar28 != 0) goto LAB_00255b3c;
          if (iVar37 != 0) {
            dVar63 = (double)iVar37;
            if (iVar37 < 0) {
              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);
            }
            (**(code **)(puVar60 + 0x1537b8))
                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);
            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
          }
          iVar28 = *(int *)(pIVar40->magick + 0x6c);
          if (iVar28 != 0) {
            dVar63 = (double)iVar28;
            if (iVar28 < 0) {
              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);
            }
            (**(code **)(puVar60 + 0x1537b8))
                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);
            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
          }
          iVar28 = *(int *)(pIVar40->magick + 0x60);
          if (iVar28 != 0) {
            dVar63 = (double)iVar28;
            if (iVar28 < 0) {
              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);
            }
            (**(code **)(puVar60 + 0x1537b8))
                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);
            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
          }
          if (*(int *)(pIVar40->magick + 0x68) != 100) {
            dVar63 = (double)*(int *)(pIVar40->magick + 0x68);
            (**(code **)(puVar60 + 0x1537b8))
                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);
            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
          }
        }
        else {
LAB_00255b3c:
          dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);
          if (*(int *)(pIVar40->magick + 0x6c) < 0) {
            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);
          }
          dVar71 = (double)*(int *)(pIVar40->magick + 0x60);
          if (*(int *)(pIVar40->magick + 0x60) < 0) {
            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);
          }
          if (iVar37 == 0) {
            (**(code **)(puVar60 + 0x1537b8))
                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);
            dVar63 = dVar62;
            dVar62 = dVar71;
          }
          else {
            dVar63 = (double)iVar37;
            if (iVar37 < 0) {
              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);
            }
            (**(code **)(puVar60 + 0x1537b8))
                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);
          }
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
        }
        if (*(int *)(pIVar40->magick + 0x50) != 0) {
          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x21);
          (**(code **)(puVar60 + 0x1537b8))
                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63);
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
        }
        if (*(int *)(pIVar40->magick + 0x58) != 0) {
          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x15);
          (**(code **)(puVar60 + 0x1537b8))
                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55);
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
        }
        if (pIVar40->client_data != (void *)0x0) {
          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x23);
          (**(code **)(puVar60 + 0x1537b8))
                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55);
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
        }
        dVar71 = (double)(pIVar40->transparent_color).count;
        if (dVar71 != 0.0) {
          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790);
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
          dVar63 = dVar71;
        }
        if (*(double *)&pIVar40->verbose != 0.0) {
          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784);
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
          dVar62 = *(double *)&pIVar40->options;
          dVar63 = *(double *)&pIVar40->verbose;
          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748);
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
        }
        if (pIVar40->affirm != MagickFalse) {
          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x36);
          (**(code **)(puVar60 + 0x1537b8))
                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62);
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
        }
        if (pIVar40->cache == (void *)0x0) {
LAB_00255c28:
          pFVar12 = pIVar40->file;
        }
        else {
          (**(code **)(puVar60 + 0x1538c8))(pIVar40);
          iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);
          if (iVar28 == 0) goto LAB_00255c28;
          iVar37 = *(int *)(puVar60 + 0x153388);
          do {
            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);
            if (iVar39 != 0) {
              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);
              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
            }
            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);
          } while (iVar28 != 0);
          pFVar12 = pIVar40->file;
        }
        if (pFVar12 != (FILE *)0x0) {
          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718);
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
        }
        (**(code **)(puVar60 + 0x1536d0))(pIVar40);
        pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);
        if (pFVar29 != (FILE *)0x0) {
          iVar28 = *(int *)(puVar60 + 0x153388);
LAB_00255c90:
          pFVar12 = pFVar29;
          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29);
          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);
          pbVar30 = (byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45);
          if (pbVar30 != (byte *)0x0) {
            iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);
            if (iVar37 != 0) {
              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();
              iVar39 = 0;
              pbVar59 = pbVar30;
              do {
                iVar47 = iVar39 + 1;
                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {
                  if (iVar39 != iVar37) {
                    pbVar59 = pbVar30 + iVar37;
                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);
                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);
                    if (iVar39 != 0) goto LAB_00255f3c;
                    pcVar61 = *(code **)(puVar60 + 0x1543d0);
                    goto LAB_00255fc0;
                  }
                  break;
                }
                pbVar59 = pbVar59 + 1;
                iVar39 = iVar47;
              } while (iVar47 != iVar37);
              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);
              goto LAB_00255d60;
            }
            (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);
            iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);
            if (iVar39 == 0) {
              pcVar61 = *(code **)(puVar60 + 0x1543d0);
LAB_00255fc0:
              (*pcVar61)(pIVar40,iVar37,pbVar30);
              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);
              goto LAB_00255d60;
            }
            goto LAB_00255f78;
          }
          goto LAB_00255d60;
        }
LAB_00255d8c:
        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar25 + -0x770c);
        if (pIVar40->file != (FILE *)0x0) {
          if (pIVar40->blob != (void *)0x0) {
            (**(code **)(puVar60 + 0x153fe4))(pIVar40);
          }
          (**(code **)(puVar60 + 0x153a18))(pIVar40,0);
        }
        if (pIVar40->cache == (void *)0x0) {
          if (pIVar40->compression == B44Compression) {
LAB_002561e8:
            uVar14 = (uint)(iVar26 * 3) >> 3;
            puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);
            if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;
            pcVar42 = pIVar40->scenes;
            if (0 < (int)pcVar42) {
              iVar28 = 0;
              iVar50 = *(int *)(puVar60 + 0x153324);
              iVar37 = 0;
              dVar71 = *(double *)(iVar57 + 0x1410);
              iVar49 = *(int *)(puVar60 + 0x15331c);
              dVar63 = *(double *)(iVar50 + -0x5b00);
              iVar48 = *(int *)(puVar60 + 0x153324);
              iVar47 = *(int *)(puVar60 + 0x153324);
              iVar39 = *(int *)(puVar60 + 0x153324);
              dVar62 = *(double *)(iVar56 + 0x1400);
              fVar68 = *(float *)(iVar49 + 0x1a50);
              dVar69 = *(double *)(iVar48 + -0x5af8);
              dVar67 = *(double *)(iVar47 + -0x5af0);
              dVar70 = *(double *)(iVar39 + -0x5ae8);
              puVar33 = puVar32;
              do {
                if (iVar26 == 0x10) {
                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);
                  if (fVar65 <= 0.0) {
                    uVar51 = 0;
                    uVar52 = 0;
                  }
                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {
                    dVar64 = (double)fVar65 + dVar62;
                    if (dVar64 < dVar71) {
                      uVar66 = (undefined2)(int)dVar64;
                    }
                    else {
                      uVar66 = (undefined2)(int)(dVar64 - dVar71);
                    }
                    uVar52 = (undefined1)((ushort)uVar66 >> 8);
                    uVar51 = (undefined1)uVar66;
                  }
                  else {
                    uVar51 = 0xff;
                    uVar52 = 0xff;
                  }
                  *puVar33 = uVar52;
                  puVar33[1] = uVar51;
                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);
                  if (fVar65 <= 0.0) {
                    uVar51 = 0;
                    uVar52 = 0;
                  }
                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {
                    dVar64 = (double)fVar65 + dVar62;
                    if (dVar64 < dVar71) {
                      uVar66 = (undefined2)(int)dVar64;
                    }
                    else {
                      uVar66 = (undefined2)(int)(dVar64 - dVar71);
                    }
                    uVar52 = (undefined1)((ushort)uVar66 >> 8);
                    uVar51 = (undefined1)uVar66;
                  }
                  else {
                    uVar51 = 0xff;
                    uVar52 = 0xff;
                  }
                  puVar33[2] = uVar52;
                  puVar33[3] = uVar51;
                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);
                  if (fVar65 <= 0.0) {
                    uVar51 = 0;
                    uVar52 = 0;
                  }
                  else if (fVar65 < fVar68) {
                    dVar64 = (double)fVar65 + dVar73;
                    if (dVar64 < dVar72) {
                      uVar66 = (undefined2)(int)dVar64;
                    }
                    else {
                      uVar66 = (undefined2)(int)(dVar64 - dVar72);
                    }
                    uVar52 = (undefined1)((ushort)uVar66 >> 8);
                    uVar51 = (undefined1)uVar66;
                  }
                  else {
                    uVar51 = 0xff;
                    uVar52 = 0xff;
                  }
                  puVar33[4] = uVar52;
                  puVar34 = puVar33 + 6;
                  puVar33[5] = uVar51;
                }
                else if (iVar26 == 0x20) {
                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);
                  if (fVar65 <= 0.0) {
                    uVar44 = 0;
                    uVar51 = 0;
                    uVar52 = 0;
                    uVar58 = 0;
                  }
                  else {
                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);
                    uVar44 = 0xff;
                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {
                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);
                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {
                        uVar43 = (uint)dVar64;
                      }
                      else {
                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;
                      }
                      uVar58 = (undefined1)(uVar43 >> 0x18);
                      uVar52 = (undefined1)(uVar43 >> 0x10);
                      uVar51 = (undefined1)(uVar43 >> 8);
                      uVar44 = (undefined1)uVar43;
                    }
                    else {
                      uVar51 = 0xff;
                      uVar52 = 0xff;
                      uVar58 = 0xff;
                    }
                  }
                  *puVar33 = uVar58;
                  puVar33[1] = uVar52;
                  puVar33[2] = uVar51;
                  puVar33[3] = uVar44;
                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);
                  if (fVar65 <= 0.0) {
                    uVar44 = 0;
                    uVar51 = 0;
                    uVar52 = 0;
                    uVar58 = 0;
                  }
                  else {
                    dVar64 = (double)fVar65 * dVar63;
                    uVar44 = 0xff;
                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {
                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);
                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {
                        uVar43 = (uint)dVar64;
                      }
                      else {
                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;
                      }
                      uVar58 = (undefined1)(uVar43 >> 0x18);
                      uVar52 = (undefined1)(uVar43 >> 0x10);
                      uVar51 = (undefined1)(uVar43 >> 8);
                      uVar44 = (undefined1)uVar43;
                    }
                    else {
                      uVar51 = 0xff;
                      uVar52 = 0xff;
                      uVar58 = 0xff;
                    }
                  }
                  puVar33[4] = uVar58;
                  puVar33[5] = uVar52;
                  puVar33[6] = uVar51;
                  puVar33[7] = uVar44;
                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);
                  if (fVar65 <= 0.0) {
                    uVar44 = 0;
                    uVar51 = 0;
                    uVar52 = 0;
                    uVar58 = 0;
                  }
                  else {
                    dVar64 = (double)fVar65 * dVar63;
                    uVar51 = 0xff;
                    if (dVar64 < dVar69) {
                      dVar64 = dVar64 + dVar62;
                      if (dVar64 < dVar71) {
                        uVar43 = (uint)dVar64;
                      }
                      else {
                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;
                      }
                      uVar58 = (undefined1)uVar43;
                      uVar52 = (undefined1)(uVar43 >> 8);
                      uVar51 = (undefined1)(uVar43 >> 0x10);
                      uVar44 = (undefined1)(uVar43 >> 0x18);
                    }
                    else {
                      uVar44 = 0xff;
                      uVar52 = 0xff;
                      uVar58 = 0xff;
                    }
                  }
                  puVar33[8] = uVar44;
                  puVar34 = puVar33 + 0xc;
                  puVar33[9] = uVar51;
                  puVar33[10] = uVar52;
                  puVar33[0xb] = uVar58;
                }
                else {
                  if (iVar26 != 8) {
                    (**(code **)(puVar60 + 0x1539fc))(puVar32);
                    pFVar12 = (FILE *)0x5ca;
                    (**(code **)(puVar60 + 0x15395c))
                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,
                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,
                               *(int *)(puVar60 + 0x153320) + -0x5aa8,
                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);
                    if (*(int *)(iVar8 + 0xc) == 0) {
                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);
                    }
                    else {
                      do {
                        pIVar9 = pIVar40;
                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);
                      } while (pIVar40 != (ImageInfo *)0x0);
                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);
                    }
                    goto LAB_0025569c;
                  }
                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);
                  if (fVar65 <= 0.0) {
                    uVar52 = 0;
                  }
                  else {
                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);
                    uVar52 = 0xff;
                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {
                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);
                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {
                        uVar52 = (undefined1)(int)dVar64;
                      }
                      else {
                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));
                      }
                    }
                  }
                  *puVar33 = uVar52;
                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);
                  if (fVar65 <= 0.0) {
                    uVar52 = 0;
                  }
                  else {
                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);
                    uVar52 = 0xff;
                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {
                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);
                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {
                        uVar52 = (undefined1)(int)dVar64;
                      }
                      else {
                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));
                      }
                    }
                  }
                  puVar33[1] = uVar52;
                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);
                  if (fVar65 <= 0.0) {
                    puVar34 = puVar33 + 3;
                    puVar33[2] = 0;
                  }
                  else {
                    dVar64 = (double)fVar65 / dVar67;
                    if (dVar64 < dVar70) {
                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);
                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {
                        uVar52 = (undefined1)(int)dVar64;
                      }
                      else {
                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));
                      }
                      puVar33[2] = uVar52;
                      puVar34 = puVar33 + 3;
                    }
                    else {
                      puVar34 = puVar33 + 3;
                      puVar33[2] = 0xff;
                    }
                  }
                }
                pcVar42 = pIVar40->scenes;
                iVar37 = iVar37 + 1;
                iVar28 = iVar28 + 0x58;
                puVar33 = puVar34;
              } while (iVar37 < (int)pcVar42);
            }
            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);
            (**(code **)(puVar60 + 0x1539fc))(puVar32);
          }
          pcVar61 = *(code **)(puVar60 + 0x1537fc);
        }
        else {
          (**(code **)(puVar60 + 0x1538c8))(pIVar40);
          while( true ) {
            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);
            if (iVar28 == 0) break;
            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);
            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);
            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);
            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);
            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);
            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);
          }
          pcVar61 = *(code **)(puVar60 + 0x1537fc);
          if (pIVar40->compression == B44Compression) goto LAB_002561e8;
        }
        pFVar12 = aFStack_5150;
        pIVar15 = (Image *)(*pcVar61)(pIVar40,auStack_4144,0,pFVar12,pFVar45);
        if (pIVar15 == (Image *)0x0) {
          pFVar12 = (FILE *)0x605;
          (**(code **)(puVar60 + 0x15395c))
                    (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,
                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,
                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,
                     pIVar40->magick + 0x130);
          pIVar9 = pIVar40;
          if (*(int *)(iVar8 + 0xc) == 0) {
            pcVar61 = *(code **)(puVar60 + 0x1540c4);
          }
          else {
            do {
              pIVar40 = pIVar9;
              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);
              pcVar61 = *(code **)(puVar60 + 0x1540c4);
            } while (pIVar9 != (ImageInfo *)0x0);
          }
          goto LAB_00255ea8;
        }
        iVar26 = (**(code **)(puVar60 + 0x153eac))(pIVar40);
        if (iVar26 == 0) break;
        pIVar40 = (ImageInfo *)(**(code **)(puVar60 + 0x153e44))(pIVar40);
        if (*(code **)(pIVar40->magick + 0x118) != (code *)0x0) {
          pFVar12 = pFStack_5188;
          pIVar15 = (Image *)(**(code **)(pIVar40->magick + 0x118))
                                       (*(int *)(puVar60 + 0x153328) + -0x150);
          if (pIVar15 == (Image *)0x0) break;
        }
        pFStack_5188 = (FILE *)((int)&pFStack_5188->_flags + 1);
      } while (*(int *)(iVar8 + 0xc) != 0);
      pcVar61 = *(code **)(puVar60 + 0x1540c4);
LAB_00255ea8:
      (*pcVar61)(pIVar40);
    }
    if (iStack_3144 == *piVar21) {
      return pIVar15;
    }
    (**(code **)(puVar60 + 0x153aa0))();
  }
  pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))
                               (*(int *)(puVar60 + 0x15331c) + 0xdd0,
                                *(int *)(puVar60 + 0x153388) + -0x74dc,0x485,
                                &pFVar12[-0xc1]._IO_save_base);
  return pIVar15;
LAB_00255f3c:
  do {
    if (*pbVar30 == 0x7d) {
      (**(code **)(puVar60 + 0x153a18))(pIVar40,0x5c);
      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);
    }
    else {
      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);
    }
    pbVar30 = pbVar30 + 1;
  } while (pbVar30 != pbVar59);
LAB_00255f78:
  (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);
LAB_00255d60:
  (**(code **)(puVar60 + 0x153a18))(pIVar40,10);
  pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);
  if (pFVar29 == (FILE *)0x0) goto LAB_00255d8c;
  goto LAB_00255c90;
}



/* WARNING: Removing unreachable block (ram,0x00255000) */
/* WARNING: Removing unreachable block (ram,0x00255118) */
/* WARNING: Removing unreachable block (ram,0x00254944) */
/* WARNING: Removing unreachable block (ram,0x0025496c) */
/* WARNING: Removing unreachable block (ram,0x00254a08) */
/* WARNING: Removing unreachable block (ram,0x00254978) */
/* WARNING: Removing unreachable block (ram,0x00254a30) */
/* WARNING: Removing unreachable block (ram,0x0025497c) */
/* WARNING: Removing unreachable block (ram,0x00254990) */
/* WARNING: Removing unreachable block (ram,0x0025505c) */
/* WARNING: Removing unreachable block (ram,0x002549bc) */
/* WARNING: Removing unreachable block (ram,0x002549f0) */
/* WARNING: Removing unreachable block (ram,0x00254a3c) */
/* WARNING: Removing unreachable block (ram,0x00254a40) */
/* WARNING: Removing unreachable block (ram,0x00254ac0) */

int FUN_0025375c(ushort *param_1,ushort *param_2)

{
  bool bVar1;
  ushort uVar2;
  undefined8 uVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined *puVar6;
  undefined *puVar7;
  ushort *puVar8;
  ushort *puVar9;
  int iVar10;
  ushort *puVar11;
  int iVar12;
  uint uVar13;
  ushort *puVar14;
  double *pdVar15;
  ushort *puVar16;
  undefined4 *puVar17;
  int *piVar18;
  int iVar19;
  int iVar20;
  int iVar21;
  int iVar22;
  undefined4 uVar23;
  int iVar24;
  byte *pbVar25;
  int *piVar26;
  undefined1 *puVar27;
  undefined1 *puVar28;
  undefined1 *puVar29;
  int iVar30;
  int iVar31;
  int iVar32;
  ushort *puVar33;
  int iVar34;
  undefined *puVar35;
  undefined1 uVar37;
  uint uVar36;
  ushort *puVar38;
  int iVar39;
  int iVar40;
  int iVar41;
  int iVar42;
  int iVar43;
  undefined1 uVar44;
  undefined1 uVar45;
  int iVar46;
  int iVar47;
  undefined4 uVar48;
  int iVar49;
  undefined4 unaff_s3;
  ushort *unaff_s4;
  ushort *puVar50;
  ushort *unaff_s5;
  int iVar51;
  undefined1 uVar52;
  ushort *unaff_s6;
  ushort *unaff_s7;
  byte *pbVar53;
  undefined *puVar54;
  ushort *unaff_s8;
  code *pcVar55;
  double dVar56;
  double dVar57;
  float fVar59;
  double dVar58;
  undefined2 uVar60;
  double dVar61;
  float fVar62;
  double dVar63;
  double dVar64;
  double in_f20_21;
  double dVar65;
  double in_f22_23;
  double in_f24_25;
  double dVar66;
  double dVar67;
  double dVar68;
  undefined8 uVar69;
  ushort *puStack_5188;
  undefined4 uStack_5150;
  undefined4 uStack_514c;
  undefined1 auStack_5144 [4096];
  undefined1 auStack_4144 [4096];
  int iStack_3144;
  ushort *puStack_3140;
  ushort *puStack_313c;
  undefined8 uStack_3138;
  ushort *puStack_3130;
  ushort *puStack_312c;
  ushort *puStack_3128;
  ushort *puStack_3124;
  ushort *puStack_3120;
  code *pcStack_311c;
  double dStack_3118;
  double dStack_3110;
  double dStack_3108;
  undefined8 local_30d8;
  undefined *local_30d0;
  ushort *local_30cc;
  ushort *local_30c8;
  int local_309c;
  undefined4 local_3078;
  undefined4 local_3074;
  ushort local_3070 [22];
  ushort auStack_3044 [2048];
  undefined1 local_2044 [4096];
  ushort local_1044 [2048];
  int local_44;
  
  puVar54 = PTR___stack_chk_guard_003a9230;
  uVar69 = CONCAT44(param_2,unaff_s3);
  local_44 = *(int *)PTR___stack_chk_guard_003a9230;
  if (param_1 == (ushort *)0x0) {
    iVar10 = (*(code *)PTR___assert_fail_003a9608)
                       (PTR_LAB_003a88e0 + 0xd78,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);
    return iVar10;
  }
  if (*(int *)(param_1 + 0x190a) != -0x54535255) {
    iVar10 = (*(code *)PTR___assert_fail_003a9608)
                       (PTR_LAB_003a88e0 + 0xda0,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);
    return iVar10;
  }
  if (*(int *)(param_1 + 0x1908) != 0) {
    local_30d8._4_4_ = param_1 + 0x1108;
    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);
    (*(code *)PTR_LogMagickEvent_003a91e0)
              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,
               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);
  }
  if (param_2 == (ushort *)0x0) {
    iVar10 = (*(code *)PTR___assert_fail_003a9608)
                       (PTR_LAB_003a88e0 + 0x1cac,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);
    return iVar10;
  }
  if (*(int *)(param_2 + 0xe) != -0x54535255) {
    iVar10 = (*(code *)PTR___assert_fail_003a9608)
                       (PTR_LAB_003a88e0 + 0x294c,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);
    return iVar10;
  }
  puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2);
  puVar38 = (ushort *)0x2;
  puVar50 = puVar8;
  local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2);
  if (local_309c == 0) {
    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);
    iVar10 = 0;
  }
  else {
    puVar38 = (ushort *)0xffa;
    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);
    puVar50 = auStack_3044;
    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);
    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
    puVar4 = PTR_LAB_003a88e0;
    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);
    if (unaff_s8 == (ushort *)0xffffffff) {
      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);
      iVar10 = 0;
      param_1 = auStack_3044;
      uVar69 = CONCAT44(param_2,unaff_s3);
    }
    else {
      unaff_s5 = local_1044;
      puVar38 = (ushort *)0x1000;
      local_2044[0] = 0;
      unaff_s4 = (ushort *)((int)unaff_s8 << 1);
      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);
      local_3074 = 0;
      local_3078 = 0;
      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();
      in_f24_25 = *(double *)(puVar5 + -0x5b00);
      in_f22_23 = *(double *)(puVar4 + 0x1418);
      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);
      unaff_s7 = local_3070;
      do {
        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;
        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);
        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);
        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);
        iVar30 = *(int *)puVar9;
        puVar8[0x10] = 0;
        puVar8[0x11] = 8;
        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);
        puVar8[4] = 0;
        puVar8[5] = 0x10;
        uVar2 = *puVar50;
        puVar11 = unaff_s8;
LAB_0025399c:
        unaff_s4 = puVar50;
        if ((uVar2 & 0x80) != 0) {
          do {
            unaff_s4 = puVar50;
            if (puVar11 == (ushort *)&DAT_0000003a) break;
            if (puVar11 == (ushort *)0x7b) {
              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);
              unaff_s8 = puVar11;
              if (puVar11 == (ushort *)0x0) {
LAB_00254658:
                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);
                uVar48 = 0x10e;
                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);
                local_30d8._0_4_ = (ushort *)0x190;
                goto LAB_002546ac;
              }
              uVar13 = 0x1000;
              puVar50 = (ushort *)0x5c;
LAB_0025451c:
              uVar69 = CONCAT44(puVar11,uVar13);
              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;
              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&
                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {
                while( true ) {
                  puVar35 = PTR_ReadBlobByte_003a97f0;
                  puVar7 = PTR_ResizeQuantumMemory_003a9420;
                  if (uVar13 <= iVar30 + 1U) {
                    uVar13 = uVar13 * 2;
                    *(byte *)unaff_s8 = 0;
                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);
                    uVar69 = CONCAT44(puVar11,uVar13);
                    unaff_s4 = puVar50;
                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;
                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);
                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);
                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;
                    goto LAB_0025451c;
                  }
                  *(byte *)unaff_s8 = (byte)unaff_s7;
                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);
                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);
                  if (unaff_s7 != (ushort *)0x5c) break;
LAB_00254578:
                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
                  iVar30 = (int)unaff_s8 - (int)puVar11;
                }
              }
              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;
              *(byte *)unaff_s8 = 0;
              puVar38 = puVar11;
              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);
              (*(code *)PTR_DestroyString_003a9074)(puVar11);
              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
            }
            else if ((uVar2 & 0x800) == 0) {
              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
            }
            else {
              puVar50 = unaff_s5;
              if (puVar11 == (ushort *)0x3d) {
                iVar12 = 0x7a;
              }
              else {
                uVar69 = 0xffffffff0000003d;
                do {
                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {
                    *(byte *)puVar50 = (byte)puVar11;
                    puVar50 = (ushort *)((int)puVar50 + 1);
                  }
                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
                  if (puVar11 == (ushort *)0xffffffff) {
                    iVar30 = *(int *)puVar9;
                    iVar12 = -2;
                    uVar69 = 0xffffffff0000003d;
                    goto LAB_00253a18;
                  }
                } while (puVar11 != (ushort *)0x3d);
                iVar30 = *(int *)puVar9;
                iVar12 = 0x7a;
              }
LAB_00253a18:
              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);
              uVar36 = (uint)uVar69;
              *(byte *)puVar50 = 0;
              uVar2 = *(ushort *)(iVar30 + iVar12);
              while ((uVar2 & 0x20) != 0) {
                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);
              }
              unaff_s7 = unaff_s6;
              if (puVar11 == (ushort *)0x3d) {
                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)
                   ) {
                  uVar69 = CONCAT44(uVar13,uVar36);
                }
                else {
                  uVar36 = 0x7d;
                  do {
                    iVar30 = (int)unaff_s7 - (int)unaff_s6;
                    unaff_s4 = puVar50;
                    while( true ) {
                      puVar50 = unaff_s7;
                      puVar7 = PTR_ResizeQuantumMemory_003a9420;
                      if (uVar13 <= iVar30 + 1U) {
                        uVar13 = uVar13 * 2;
                        *(byte *)puVar50 = 0;
                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);
                        unaff_s7 = puVar50;
                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;
                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);
                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);
                      }
                      puVar7 = PTR_ReadBlobByte_003a97f0;
                      uVar3 = CONCAT44(uVar13,0x7d);
                      uVar69 = CONCAT44(uVar13,0x7d);
                      *(byte *)puVar50 = (byte)puVar11;
                      unaff_s7 = (ushort *)((int)puVar50 + 1);
                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);
                      if (puVar11 != (ushort *)0x5c) break;
                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
                      puVar7 = PTR_ReadBlobByte_003a97f0;
                      if (puVar11 == (ushort *)0x7d) {
                        *(byte *)((int)puVar50 + 1) = 0x7d;
                        unaff_s7 = puVar50 + 1;
                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);
                        break;
                      }
                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;
                      iVar30 = (int)unaff_s7 - (int)unaff_s6;
                      unaff_s4 = puVar50;
                      uVar69 = uVar3;
                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;
                    }
                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;
LAB_002547c4:
                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)
                    goto LAB_00253a68;
LAB_002547e0:
                    uVar69 = uVar3;
                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));
                }
joined_r0x00254fe4:
                unaff_s4 = puVar50;
                if (unaff_s6 == (ushort *)0x0) {
LAB_00254848:
                  uVar48 = 0x14c;
                  goto LAB_00254850;
                }
              }
LAB_00253a68:
              *(byte *)unaff_s7 = 0;
              if (*(byte *)unaff_s6 == 0x7b) {
                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);
                (*(code *)PTR_CopyMagickString_003a983c)
                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);
              }
              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;
              if (uVar13 < 0x37) {
                    /* WARNING: Could not emulate address calculation at 0x00253a98 */
                    /* WARNING: Treating indirect jump as call */
                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();
                return iVar10;
              }
              puVar38 = unaff_s6;
              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);
            }
            iVar30 = *(int *)puVar9;
            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);
            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;
            do {
              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
              iVar30 = *(int *)puVar9;
              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);
            } while ((uVar2 & 0x20) != 0);
            unaff_s4 = puVar50;
            if ((uVar2 & 0x80) == 0) break;
          } while( true );
        }
        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);
        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)
                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);
        unaff_s8 = puVar11;
        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||
             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||
            ((0x40 < *(uint *)(puVar8 + 0x160) ||
             ((0x38 < *(uint *)(puVar8 + 0x162) ||
              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||
           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {
          uVar48 = 0x31d;
          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);
          local_30d8._0_4_ = (ushort *)&DAT_000001a9;
LAB_002546ac:
          local_30cc = param_1 + 0x1108;
          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);
          (*(code *)PTR_CloseBlob_003a9688)(puVar8);
          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);
          iVar10 = 0;
          param_1 = puVar9;
          goto LAB_002546dc;
        }
        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);
        if (iVar10 != iVar30) {
          uVar48 = 0x323;
          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);
          local_30d8._0_4_ = (ushort *)&DAT_000001bd;
          goto LAB_002546ac;
        }
        if (*(int *)(puVar8 + 0x102) != 0) {
          unaff_s6 = (ushort *)0x0;
          puVar14 = (ushort *)0x1000;
          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);
          *(ushort **)(puVar8 + 0x104) = puVar50;
          do {
            *(byte *)puVar50 = 0;
            puVar16 = puVar50;
            if (puVar14 <= unaff_s6 + 0x800) {
              puVar14 = (ushort *)((int)puVar14 * 2);
              uVar69 = CONCAT44(puVar14,0xffffffff);
              puVar38 = (ushort *)0x1;
              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)
                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);
              *(int *)(puVar8 + 0x104) = iVar10;
              if (iVar10 == 0) {
                uVar48 = 0x341;
                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
                local_30d8._4_4_ =
                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);
                local_30d8._0_4_ = (ushort *)&DAT_000001a9;
                goto LAB_002546ac;
              }
              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);
            }
            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
            uVar69 = CONCAT44(puVar14,0xffffffff);
            if (iVar10 == -1) break;
            puVar50 = (ushort *)((int)puVar16 + 1);
            *(byte *)puVar16 = (byte)iVar10;
            unaff_s6 = (ushort *)((int)unaff_s6 + 1);
            unaff_s4 = puVar16;
            uVar69 = CONCAT44(puVar14,0xffffffff);
          } while (iVar10 != 0);
        }
        puVar50 = (ushort *)0x0;
        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);
        if (*(int *)puVar8 == 2) {
          iVar10 = *(int *)(puVar8 + 0x12);
          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);
          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;
          uVar36 = uVar13 * iVar10;
          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {
            uVar36 = (uint)((uint)uVar69 < uVar36);
            uVar69 = CONCAT44(uVar13,uVar36);
            if (uVar36 != 0) {
              uVar48 = 0x37d;
              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);
              local_30d8._0_4_ = (ushort *)&DAT_000001a9;
              goto LAB_002546ac;
            }
          }
          puVar50 = (ushort *)0x58;
          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);
          *(int *)(puVar8 + 0x14) = iVar10;
          if (iVar10 == 0) {
            uVar48 = 0x381;
LAB_00254850:
            uVar69 = CONCAT44(uVar13,uVar36);
            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);
            local_30d8._0_4_ = (ushort *)0x190;
            unaff_s8 = puVar11;
            goto LAB_002546ac;
          }
          uVar69 = CONCAT44(uVar13,uVar36);
          if (*(int *)(puVar8 + 0x12) != 0) {
            puVar14 = (ushort *)
                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);
            if (puVar14 == (ushort *)0x0) {
              uVar48 = 0x38a;
              uVar36 = 0;
              goto LAB_00254850;
            }
            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));
            puVar38 = puVar14;
            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);
            iVar30 = *(int *)(puVar8 + 0x12);
            iVar12 = iVar30 * uVar13;
            uVar69 = CONCAT44(iVar12,puVar14);
            if (iVar12 != iVar10) {
              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);
              uVar48 = 0x390;
              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);
              local_30d8._0_4_ = (ushort *)&DAT_000001a9;
              goto LAB_002546ac;
            }
            if (unaff_s4 == (ushort *)0x10) {
              if (0 < iVar30) {
                puVar16 = puVar14;
                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);
                do {
                  puVar33 = puVar16 + 3;
                  *pdVar15 = (double)*puVar16;
                  pdVar15[1] = (double)puVar16[1];
                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);
                  puVar50 = (ushort *)(uint)puVar16[2];
                  pdVar15[2] = (double)(int)puVar50;
                  puVar16 = puVar33;
                  pdVar15 = pdVar15 + 0xb;
                } while (puVar33 != puVar14 + iVar30 * 3);
              }
            }
            else if (unaff_s4 == (ushort *)0x20) {
              if (0 < iVar30) {
                dVar67 = *(double *)(puVar4 + 0x1418);
                dVar66 = *(double *)(puVar5 + -0x5b00);
                puVar16 = puVar14;
                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);
                do {
                  puVar38 = puVar16;
                  dVar68 = (double)*(int *)puVar38;
                  if (*(int *)puVar38 < 0) {
                    dVar68 = dVar68 + dVar67;
                  }
                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);
                  dVar68 = (double)*(int *)(puVar38 + 2);
                  if (*(int *)(puVar38 + 2) < 0) {
                    dVar68 = dVar68 + dVar67;
                  }
                  pdVar15[1] = (double)(float)(dVar68 / dVar66);
                  puVar50 = *(ushort **)(puVar38 + 4);
                  dVar68 = (double)(int)puVar50;
                  if ((int)puVar50 < 0) {
                    dVar68 = dVar68 + in_f22_23;
                  }
                  pdVar15[2] = (double)(float)(dVar68 / dVar66);
                  puVar16 = puVar38 + 6;
                  pdVar15 = pdVar15 + 0xb;
                } while (puVar38 + 6 != puVar14 + iVar30 * 6);
              }
            }
            else {
              if (unaff_s4 != (ushort *)&DAT_00000008) {
                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);
                uVar48 = 0x398;
                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);
                local_30d8._0_4_ = (ushort *)&DAT_000001a9;
                uVar69 = CONCAT44(iVar12,puVar14);
                goto LAB_002546ac;
              }
              puVar50 = (ushort *)(iVar30 * 2);
              if (0 < iVar30) {
                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);
                puVar16 = puVar14;
                do {
                  puVar33 = (ushort *)((int)puVar16 + 3);
                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);
                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);
                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);
                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);
                  pdVar15 = pdVar15 + 0xb;
                  puVar16 = puVar33;
                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);
              }
            }
            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);
            uVar69 = CONCAT44(iVar12,puVar14);
          }
        }
        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);
        uVar23 = (undefined4)uVar69;
        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&
           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))
           ) {
          (*(code *)PTR_CloseBlob_003a9688)(puVar8);
          if (local_309c != 0) goto LAB_002548a8;
          goto LAB_00253dbc;
        }
        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);
        if (iVar10 == 0) {
LAB_002550a8:
          uVar48 = 0x3db;
          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);
          local_30d8._0_4_ = (ushort *)0x1d1;
          goto LAB_002546ac;
        }
        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);
        if (iVar10 == 0) goto LAB_002550a8;
        puVar38 = (ushort *)0x1;
        puVar50 = auStack_3044;
        local_30d8._0_4_ = param_2;
        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);
        if (iVar10 == 0) {
          (*(code *)PTR_SetImageExtent_003a94ac)
                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);
          uVar48 = 0x3e3;
          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);
          local_30d8._0_4_ = (ushort *)&DAT_000001bd;
          puVar9 = param_2;
          goto LAB_002546ac;
        }
        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);
        if (iVar10 != 0) {
          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);
          local_30cc = puVar8 + 0x1a0;
          local_30d0 = PTR_LAB_003a88e0 + 0xe78;
          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);
          local_30d8._0_4_ = (ushort *)&DAT_000001a9;
          local_30c8 = puVar9;
          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);
          (*(code *)PTR_DestroyString_003a9074)(puVar9);
          (*(code *)PTR_CloseBlob_003a9688)(puVar8);
LAB_002548a8:
          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);
          param_1 = puVar9;
          unaff_s8 = puVar11;
          uVar69 = CONCAT44(uVar48,uVar23);
          goto LAB_002546dc;
        }
        uVar48 = 0xffffffff;
        uVar69 = CONCAT44(0xffffffff,uVar23);
        while( true ) {
          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
          unaff_s4 = (ushort *)((int)unaff_s8 * 2);
          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;
          bVar1 = unaff_s8 == (ushort *)0xffffffff;
          unaff_s8 = puVar11;
          if (bVar1) goto LAB_0025489c;
        }
        if (unaff_s8 == (ushort *)0xffffffff) {
LAB_0025489c:
          (*(code *)PTR_CloseBlob_003a9688)(puVar8);
          puVar11 = unaff_s8;
          goto LAB_002548a8;
        }
        puVar50 = puVar8;
        puVar38 = param_2;
        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);
        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);
        if (iVar10 == 0) break;
        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);
        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);
        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);
        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);
        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);
        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);
      } while (local_309c != 0);
      (*(code *)PTR_CloseBlob_003a9688)(puVar8);
      puVar11 = unaff_s8;
LAB_00253dbc:
      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);
      param_1 = puVar9;
      unaff_s8 = puVar11;
    }
  }
LAB_002546dc:
  if (local_44 == *(int *)puVar54) {
    return iVar10;
  }
  pcVar55 = FUN_002555c4;
  iVar10 = local_44;
  puVar54 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  piVar18 = *(int **)(puVar54 + 0x153c6c);
  iStack_3144 = *piVar18;
  puStack_3140 = puVar8;
  puStack_313c = param_1;
  puStack_3130 = unaff_s4;
  puStack_312c = unaff_s5;
  puStack_3128 = unaff_s6;
  puStack_3124 = unaff_s7;
  puStack_3120 = unaff_s8;
  pcStack_311c = pcVar55;
  dStack_3118 = in_f20_21;
  dStack_3110 = in_f22_23;
  dStack_3108 = in_f24_25;
  uStack_3138 = uVar69;
  if (iVar10 == 0) {
    iVar10 = (**(code **)(puVar54 + 0x154044))
                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,
                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);
    return iVar10;
  }
  puVar8 = *(ushort **)(puVar54 + 0x153388);
  if (*(int *)(iVar10 + 0x3214) != -0x54535255) {
    iVar10 = (**(code **)(puVar54 + 0x154044))
                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,
                        0x484,puVar8 + -0x393a);
    return iVar10;
  }
  if (puVar50 != (ushort *)0x0) {
    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {
      iVar10 = (**(code **)(puVar54 + 0x154044))
                         (*(int *)(puVar54 + 0x153324) + -0x3784,
                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);
      return iVar10;
    }
    if (*(int *)(puVar50 + 0x19a8) != 0) {
      (**(code **)(puVar54 + 0x153c1c))
                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,
                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac
                 ,puVar50 + 0x1a0);
    }
    if (puVar38 == (ushort *)0x0) {
      iVar10 = (**(code **)(puVar54 + 0x154044))
                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,
                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,
                          *(int *)(puVar54 + 0x153388) + -0x7274);
      return iVar10;
    }
    if (*(int *)(puVar38 + 0xe) != -0x54535255) {
      iVar10 = (**(code **)(puVar54 + 0x154044))
                         (*(int *)(puVar54 + 0x15331c) + 0x294c,
                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,
                          *(int *)(puVar54 + 0x153388) + -0x7274);
      return iVar10;
    }
    puVar8 = puVar38;
    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);
    if (iVar30 == 0) {
LAB_0025569c:
      iVar46 = 0;
    }
    else {
      iVar47 = *(int *)(puVar54 + 0x15331c);
      iVar49 = *(int *)(puVar54 + 0x15331c);
      iVar51 = *(int *)(puVar54 + 0x15331c);
      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);
      iVar30 = *(int *)(puVar54 + 0x153388);
      iVar12 = *(int *)(puVar54 + 0x153388);
      iVar19 = *(int *)(puVar54 + 0x153388);
      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);
      uStack_514c = 0;
      uStack_5150 = 0;
      (**(code **)(puVar54 + 0x153cb4))(puVar50);
      dVar68 = *(double *)(iVar47 + 0x1418);
      iVar20 = *(int *)(puVar54 + 0x153388);
      dVar67 = *(double *)(iVar49 + 0x1400);
      iVar31 = *(int *)(puVar54 + 0x153388);
      dVar66 = *(double *)(iVar51 + 0x1410);
      iVar21 = *(int *)(puVar54 + 0x153388);
      puStack_5188 = (ushort *)0x0;
      iVar22 = *(int *)(puVar54 + 0x153388);
      do {
        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);
        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);
        if (*(int *)puVar50 == 2) {
          uVar13 = *(uint *)(puVar50 + 0x10);
          if (uVar13 == 0) {
            uVar13 = 1;
          }
          else {
            uVar36 = 0;
            if (uVar13 < 0x41) {
              uVar36 = uVar13;
            }
            uVar13 = 2 << (uVar36 - 1 & 0x1f);
            if ((uVar36 - 1 & 0x20) != 0) {
              uVar13 = 0;
            }
          }
          if (uVar13 < *(uint *)(puVar50 + 0x12)) {
            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);
          }
        }
        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);
        uVar48 = (**(code **)(puVar54 + 0x154128))(0);
        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);
        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);
        dVar65 = (double)*(int *)(puVar50 + 0x12);
        if (*(int *)(puVar50 + 0x12) < 0) {
          dVar65 = dVar65 + dVar68;
        }
        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));
        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)
        ;
        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);
        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        dVar65 = (double)*(int *)(puVar50 + 0x10);
        if (*(int *)(puVar50 + 0x10) < 0) {
          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);
        }
        dVar56 = (double)*(int *)(puVar50 + 0xe);
        if (*(int *)(puVar50 + 0xe) < 0) {
          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);
        }
        dVar57 = (double)*(int *)(puVar50 + 0xc);
        if (*(int *)(puVar50 + 0xc) < 0) {
          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);
        }
        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);
        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        if (*(int *)(puVar50 + 0x150) != 0) {
          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56
                     ,dVar65);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));
        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);
        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        if (*(int *)(puVar50 + 0x12a) == 0) {
          pcVar55 = *(code **)(puVar54 + 0x15379c);
          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;
LAB_002565f0:
          uVar48 = (*pcVar55)(0x18);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          if (*(int *)(puVar50 + 4) != 0) {
            pcVar55 = *(code **)(puVar54 + 0x15379c);
            goto LAB_0025663c;
          }
        }
        else {
          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          if (*(int *)(puVar50 + 0x12e) != 0) {
            pcVar55 = *(code **)(puVar54 + 0x15379c);
            goto LAB_002565f0;
          }
LAB_00255a3c:
          pcVar55 = *(code **)(puVar54 + 0x15379c);
          if (*(int *)(puVar50 + 4) != 0) {
LAB_0025663c:
            uVar48 = (*pcVar55)(0xe);
            dVar57 = (double)*(int *)(puVar50 + 6);
            if (*(int *)(puVar50 + 6) < 0) {
              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);
            }
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);
            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          }
        }
        if (*(int *)(puVar50 + 0x100) != 0) {
          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        dVar65 = *(double *)(puVar50 + 0x10c);
        dVar61 = *(double *)(puVar50 + 0x110);
        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          dVar57 = dVar65;
          dVar56 = dVar61;
        }
        iVar32 = *(int *)(puVar50 + 0x114);
        iVar34 = *(int *)(puVar50 + 0x116);
        iVar39 = *(int *)(puVar50 + 0x118);
        iVar24 = *(int *)(puVar50 + 0x11a);
        if ((iVar32 == 0) && (iVar34 == 0)) {
          if ((iVar39 != 0) || (iVar24 != 0)) {
            uVar48 = SUB84(dVar57,0);
            dVar57 = (double)CONCAT44(iVar24,uVar48);
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,
                       uVar48,dVar56);
            goto LAB_00255ed4;
          }
        }
        else {
          dVar56 = (double)iVar34;
          if (iVar34 < 0) {
            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);
          }
          dVar57 = (double)iVar32;
          if (iVar32 < 0) {
            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);
          }
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56
                     ,(double)iVar39,(double)iVar24);
LAB_00255ed4:
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        iVar24 = *(int *)(puVar50 + 0x14e);
        if ((*(int *)(puVar50 + 0x14c) != 0) ||
           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {
          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,
                     *(int *)(puVar50 + 0x14c),iVar24);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          pcVar55 = *(code **)(puVar54 + 0x153eac);
        }
        iVar24 = (*pcVar55)(puVar50);
        iVar32 = *(int *)(puVar50 + 0x136);
        if (iVar24 == 0) {
          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);
          if (iVar24 != 0) goto LAB_00255b3c;
          if (iVar32 != 0) {
            dVar57 = (double)iVar32;
            if (iVar32 < 0) {
              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);
            }
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);
            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          }
          iVar24 = *(int *)(puVar50 + 0x13e);
          if (iVar24 != 0) {
            dVar57 = (double)iVar24;
            if (iVar24 < 0) {
              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);
            }
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);
            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          }
          iVar24 = *(int *)(puVar50 + 0x138);
          if (iVar24 != 0) {
            dVar57 = (double)iVar24;
            if (iVar24 < 0) {
              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);
            }
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);
            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          }
          if (*(int *)(puVar50 + 0x13c) != 100) {
            dVar57 = (double)*(int *)(puVar50 + 0x13c);
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);
            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          }
        }
        else {
LAB_00255b3c:
          dVar56 = (double)*(int *)(puVar50 + 0x13e);
          if (*(int *)(puVar50 + 0x13e) < 0) {
            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);
          }
          dVar65 = (double)*(int *)(puVar50 + 0x138);
          if (*(int *)(puVar50 + 0x138) < 0) {
            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);
          }
          if (iVar32 == 0) {
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);
            dVar57 = dVar56;
            dVar56 = dVar65;
          }
          else {
            dVar57 = (double)iVar32;
            if (iVar32 < 0) {
              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);
            }
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);
          }
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        if (*(int *)(puVar50 + 0x130) != 0) {
          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        if (*(int *)(puVar50 + 0x134) != 0) {
          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        if (*(int *)(puVar50 + 0xfc) != 0) {
          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        dVar65 = *(double *)(puVar50 + 200);
        if (dVar65 != 0.0) {
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          dVar57 = dVar65;
        }
        if (*(double *)(puVar50 + 0xf0) != 0.0) {
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          dVar56 = *(double *)(puVar50 + 0xf4);
          dVar57 = *(double *)(puVar50 + 0xf0);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        if (*(int *)(puVar50 + 8) != 0) {
          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56
                    );
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        if (*(int *)(puVar50 + 0xfe) == 0) {
LAB_00255c28:
          puVar8 = *(ushort **)(puVar50 + 0x102);
        }
        else {
          (**(code **)(puVar54 + 0x1538c8))(puVar50);
          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);
          if (iVar24 == 0) goto LAB_00255c28;
          iVar32 = *(int *)(puVar54 + 0x153388);
          do {
            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);
            if (iVar34 != 0) {
              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);
              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
            }
            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);
          } while (iVar24 != 0);
          puVar8 = *(ushort **)(puVar50 + 0x102);
        }
        if (puVar8 != (ushort *)0x0) {
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        (**(code **)(puVar54 + 0x1536d0))(puVar50);
        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);
        if (puVar9 != (ushort *)0x0) {
          iVar24 = *(int *)(puVar54 + 0x153388);
LAB_00255c90:
          puVar8 = puVar9;
          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);
          if (pbVar25 != (byte *)0x0) {
            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);
            if (iVar32 != 0) {
              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();
              iVar34 = 0;
              pbVar53 = pbVar25;
              do {
                iVar39 = iVar34 + 1;
                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {
                  if (iVar34 != iVar32) {
                    pbVar53 = pbVar25 + iVar32;
                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);
                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);
                    if (iVar34 != 0) goto LAB_00255f3c;
                    pcVar55 = *(code **)(puVar54 + 0x1543d0);
                    goto LAB_00255fc0;
                  }
                  break;
                }
                pbVar53 = pbVar53 + 1;
                iVar34 = iVar39;
              } while (iVar39 != iVar32);
              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);
              goto LAB_00255d60;
            }
            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);
            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);
            if (iVar34 == 0) {
              pcVar55 = *(code **)(puVar54 + 0x1543d0);
LAB_00255fc0:
              (*pcVar55)(puVar50,iVar32,pbVar25);
              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);
              goto LAB_00255d60;
            }
            goto LAB_00255f78;
          }
          goto LAB_00255d60;
        }
LAB_00255d8c:
        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);
        if (*(int *)(puVar50 + 0x102) != 0) {
          if (*(int *)(puVar50 + 0x104) != 0) {
            (**(code **)(puVar54 + 0x153fe4))(puVar50);
          }
          (**(code **)(puVar54 + 0x153a18))(puVar50,0);
        }
        if (*(int *)(puVar50 + 0xfe) == 0) {
          if (*(int *)puVar50 == 2) {
LAB_002561e8:
            uVar13 = (uint)(iVar46 * 3) >> 3;
            puVar27 = (undefined1 *)
                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);
            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;
            iVar24 = *(int *)(puVar50 + 0x12);
            if (0 < iVar24) {
              iVar32 = 0;
              iVar43 = *(int *)(puVar54 + 0x153324);
              iVar34 = 0;
              dVar65 = *(double *)(iVar51 + 0x1410);
              iVar42 = *(int *)(puVar54 + 0x15331c);
              dVar57 = *(double *)(iVar43 + -0x5b00);
              iVar41 = *(int *)(puVar54 + 0x153324);
              iVar40 = *(int *)(puVar54 + 0x153324);
              iVar39 = *(int *)(puVar54 + 0x153324);
              dVar56 = *(double *)(iVar49 + 0x1400);
              fVar62 = *(float *)(iVar42 + 0x1a50);
              dVar63 = *(double *)(iVar41 + -0x5af8);
              dVar61 = *(double *)(iVar40 + -0x5af0);
              dVar64 = *(double *)(iVar39 + -0x5ae8);
              puVar28 = puVar27;
              do {
                if (iVar46 == 0x10) {
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);
                  if (fVar59 <= 0.0) {
                    uVar44 = 0;
                    uVar45 = 0;
                  }
                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {
                    dVar58 = (double)fVar59 + dVar56;
                    if (dVar58 < dVar65) {
                      uVar60 = (undefined2)(int)dVar58;
                    }
                    else {
                      uVar60 = (undefined2)(int)(dVar58 - dVar65);
                    }
                    uVar45 = (undefined1)((ushort)uVar60 >> 8);
                    uVar44 = (undefined1)uVar60;
                  }
                  else {
                    uVar44 = 0xff;
                    uVar45 = 0xff;
                  }
                  *puVar28 = uVar45;
                  puVar28[1] = uVar44;
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);
                  if (fVar59 <= 0.0) {
                    uVar44 = 0;
                    uVar45 = 0;
                  }
                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {
                    dVar58 = (double)fVar59 + dVar56;
                    if (dVar58 < dVar65) {
                      uVar60 = (undefined2)(int)dVar58;
                    }
                    else {
                      uVar60 = (undefined2)(int)(dVar58 - dVar65);
                    }
                    uVar45 = (undefined1)((ushort)uVar60 >> 8);
                    uVar44 = (undefined1)uVar60;
                  }
                  else {
                    uVar44 = 0xff;
                    uVar45 = 0xff;
                  }
                  puVar28[2] = uVar45;
                  puVar28[3] = uVar44;
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);
                  if (fVar59 <= 0.0) {
                    uVar44 = 0;
                    uVar45 = 0;
                  }
                  else if (fVar59 < fVar62) {
                    dVar58 = (double)fVar59 + dVar67;
                    if (dVar58 < dVar66) {
                      uVar60 = (undefined2)(int)dVar58;
                    }
                    else {
                      uVar60 = (undefined2)(int)(dVar58 - dVar66);
                    }
                    uVar45 = (undefined1)((ushort)uVar60 >> 8);
                    uVar44 = (undefined1)uVar60;
                  }
                  else {
                    uVar44 = 0xff;
                    uVar45 = 0xff;
                  }
                  puVar28[4] = uVar45;
                  puVar29 = puVar28 + 6;
                  puVar28[5] = uVar44;
                }
                else if (iVar46 == 0x20) {
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);
                  if (fVar59 <= 0.0) {
                    uVar37 = 0;
                    uVar44 = 0;
                    uVar45 = 0;
                    uVar52 = 0;
                  }
                  else {
                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);
                    uVar37 = 0xff;
                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {
                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);
                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {
                        uVar36 = (uint)dVar58;
                      }
                      else {
                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;
                      }
                      uVar52 = (undefined1)(uVar36 >> 0x18);
                      uVar45 = (undefined1)(uVar36 >> 0x10);
                      uVar44 = (undefined1)(uVar36 >> 8);
                      uVar37 = (undefined1)uVar36;
                    }
                    else {
                      uVar44 = 0xff;
                      uVar45 = 0xff;
                      uVar52 = 0xff;
                    }
                  }
                  *puVar28 = uVar52;
                  puVar28[1] = uVar45;
                  puVar28[2] = uVar44;
                  puVar28[3] = uVar37;
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);
                  if (fVar59 <= 0.0) {
                    uVar37 = 0;
                    uVar44 = 0;
                    uVar45 = 0;
                    uVar52 = 0;
                  }
                  else {
                    dVar58 = (double)fVar59 * dVar57;
                    uVar37 = 0xff;
                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {
                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);
                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {
                        uVar36 = (uint)dVar58;
                      }
                      else {
                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;
                      }
                      uVar52 = (undefined1)(uVar36 >> 0x18);
                      uVar45 = (undefined1)(uVar36 >> 0x10);
                      uVar44 = (undefined1)(uVar36 >> 8);
                      uVar37 = (undefined1)uVar36;
                    }
                    else {
                      uVar44 = 0xff;
                      uVar45 = 0xff;
                      uVar52 = 0xff;
                    }
                  }
                  puVar28[4] = uVar52;
                  puVar28[5] = uVar45;
                  puVar28[6] = uVar44;
                  puVar28[7] = uVar37;
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);
                  if (fVar59 <= 0.0) {
                    uVar37 = 0;
                    uVar44 = 0;
                    uVar45 = 0;
                    uVar52 = 0;
                  }
                  else {
                    dVar58 = (double)fVar59 * dVar57;
                    uVar44 = 0xff;
                    if (dVar58 < dVar63) {
                      dVar58 = dVar58 + dVar56;
                      if (dVar58 < dVar65) {
                        uVar36 = (uint)dVar58;
                      }
                      else {
                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;
                      }
                      uVar52 = (undefined1)uVar36;
                      uVar45 = (undefined1)(uVar36 >> 8);
                      uVar44 = (undefined1)(uVar36 >> 0x10);
                      uVar37 = (undefined1)(uVar36 >> 0x18);
                    }
                    else {
                      uVar37 = 0xff;
                      uVar45 = 0xff;
                      uVar52 = 0xff;
                    }
                  }
                  puVar28[8] = uVar37;
                  puVar29 = puVar28 + 0xc;
                  puVar28[9] = uVar44;
                  puVar28[10] = uVar45;
                  puVar28[0xb] = uVar52;
                }
                else {
                  if (iVar46 != 8) {
                    (**(code **)(puVar54 + 0x1539fc))(puVar27);
                    puVar8 = (ushort *)0x5ca;
                    (**(code **)(puVar54 + 0x15395c))
                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,
                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,
                               *(int *)(puVar54 + 0x153320) + -0x5aa8,
                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);
                    if (*(int *)(iVar10 + 0xc) == 0) {
                      (**(code **)(puVar54 + 0x1540c4))(puVar50);
                    }
                    else {
                      do {
                        puVar38 = puVar50;
                        puVar50 = *(ushort **)(puVar38 + 0x19b2);
                      } while (puVar50 != (ushort *)0x0);
                      (**(code **)(puVar54 + 0x1540c4))(puVar38);
                    }
                    goto LAB_0025569c;
                  }
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);
                  if (fVar59 <= 0.0) {
                    uVar45 = 0;
                  }
                  else {
                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);
                    uVar45 = 0xff;
                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {
                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);
                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {
                        uVar45 = (undefined1)(int)dVar58;
                      }
                      else {
                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));
                      }
                    }
                  }
                  *puVar28 = uVar45;
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);
                  if (fVar59 <= 0.0) {
                    uVar45 = 0;
                  }
                  else {
                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);
                    uVar45 = 0xff;
                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {
                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);
                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {
                        uVar45 = (undefined1)(int)dVar58;
                      }
                      else {
                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));
                      }
                    }
                  }
                  puVar28[1] = uVar45;
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);
                  if (fVar59 <= 0.0) {
                    puVar29 = puVar28 + 3;
                    puVar28[2] = 0;
                  }
                  else {
                    dVar58 = (double)fVar59 / dVar61;
                    if (dVar58 < dVar64) {
                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);
                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {
                        uVar45 = (undefined1)(int)dVar58;
                      }
                      else {
                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));
                      }
                      puVar28[2] = uVar45;
                      puVar29 = puVar28 + 3;
                    }
                    else {
                      puVar29 = puVar28 + 3;
                      puVar28[2] = 0xff;
                    }
                  }
                }
                iVar24 = *(int *)(puVar50 + 0x12);
                iVar34 = iVar34 + 1;
                iVar32 = iVar32 + 0x58;
                puVar28 = puVar29;
              } while (iVar34 < iVar24);
            }
            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);
            (**(code **)(puVar54 + 0x1539fc))(puVar27);
          }
          pcVar55 = *(code **)(puVar54 + 0x1537fc);
        }
        else {
          (**(code **)(puVar54 + 0x1538c8))(puVar50);
          while( true ) {
            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);
            if (iVar24 == 0) break;
            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);
            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);
            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);
            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);
            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);
            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);
          }
          pcVar55 = *(code **)(puVar54 + 0x1537fc);
          if (*(int *)puVar50 == 2) goto LAB_002561e8;
        }
        puVar8 = (ushort *)&uStack_5150;
        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);
        if (iVar46 == 0) {
          puVar8 = (ushort *)0x605;
          (**(code **)(puVar54 + 0x15395c))
                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,
                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,
                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,
                     puVar50 + 0x1a0);
          puVar38 = puVar50;
          if (*(int *)(iVar10 + 0xc) == 0) {
            pcVar55 = *(code **)(puVar54 + 0x1540c4);
          }
          else {
            do {
              puVar50 = puVar38;
              pcVar55 = *(code **)(puVar54 + 0x1540c4);
              puVar38 = *(ushort **)(puVar50 + 0x19b2);
            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);
          }
          goto LAB_00255ea8;
        }
        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);
        if (iVar24 == 0) break;
        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);
        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {
          puVar8 = puStack_5188;
          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);
          if (iVar46 == 0) break;
        }
        puStack_5188 = (ushort *)((int)puStack_5188 + 1);
      } while (*(int *)(iVar10 + 0xc) != 0);
      pcVar55 = *(code **)(puVar54 + 0x1540c4);
LAB_00255ea8:
      (*pcVar55)(puVar50);
    }
    if (iStack_3144 == *piVar18) {
      return iVar46;
    }
    (**(code **)(puVar54 + 0x153aa0))();
  }
  iVar10 = (**(code **)(puVar54 + 0x154044))
                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,
                      0x485,puVar8 + -0x393a);
  return iVar10;
LAB_00255f3c:
  do {
    if (*pbVar25 == 0x7d) {
      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);
      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);
    }
    else {
      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);
    }
    pbVar25 = pbVar25 + 1;
  } while (pbVar25 != pbVar53);
LAB_00255f78:
  (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);
LAB_00255d60:
  (**(code **)(puVar54 + 0x153a18))(puVar50,10);
  puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);
  if (puVar9 == (ushort *)0x0) goto LAB_00255d8c;
  goto LAB_00255c90;
}


lui gp,0x16
addiu gp,gp,-0x2eac
addu gp,gp,t9
lw v0,-0x7680(gp)
addiu sp,sp,-0x30e8
sdc1 f24,0x30e0(sp)
sw v0,0x64(sp)
sw gp,0x28(sp)
sw ra,0x30cc(sp)
sw s8,0x30c8(sp)
sw s7,0x30c4(sp)
sw s6,0x30c0(sp)
sw s5,0x30bc(sp)
sw s4,0x30b8(sp)
sw s3,0x30b4(sp)
sw s2,0x30b0(sp)
sw s1,0x30ac(sp)
sw s0,0x30a8(sp)
sw a0,0x3c(sp)
sw a1,0x34(sp)
lw v0,0x0(v0)
sdc1 f22,0x30d8(sp)
sdc1 f20,0x30d0(sp)
sw v0,0x30a4(sp)
beq a0,zero,0x002554c8
_lw a3,-0x7f64(gp)
lw v0,0x3c(sp)
lw v1,0x3214(v0)
lui v0,0xabac
ori v0,v0,0xadab
bne v1,v0,0x00255598
_lw v0,0x3c(sp)
lw v0,0x3210(v0)
bne v0,zero,0x00254b14
_lw v0,0x3c(sp)
lw v0,0x34(sp)
beq v0,zero,0x00255518
_lw a3,-0x7f64(gp)
lw v1,0x1c(v0)
lui v0,0xabac
ori v0,v0,0xadab
bne v1,v0,0x002554f8
_lw s2,0x34(sp)
lw s1,0x3c(sp)
lw t9,-0x72a4(gp)
or a1,s2,zero
jalr t9
_or a0,s1,zero
li a2,0x2
lw gp,0x28(sp)
or a3,s2,zero
or a1,v0,zero
or a0,s1,zero
lw t9,-0x7664(gp)
jalr t9
_or s0,v0,zero
lw gp,0x28(sp)
beq v0,zero,0x00255088
_sw v0,0x4c(sp)
addiu v0,sp,0xa4
lw t9,-0x7074(gp)
li a2,0xffa
addiu a1,s0,0x340
sw v0,0x60(sp)
or a0,v0,zero
jalr t9
_or s1,v0,zero
lw gp,0x28(sp)
or a1,s1,zero
lw a0,-0x7fc4(gp)
lw t9,-0x7908(gp)
jalr t9
_addiu a0,a0,-0x50b8
lw gp,0x28(sp)
lw t9,-0x70c0(gp)
jalr t9
_or a0,s0,zero
li v1,-0x1
lw gp,0x28(sp)
beq v0,v1,0x00255174
_or s8,v0,zero
lw s2,-0x7fc8(gp)
addiu s5,sp,0x20a4
lw s3,-0x7fd0(gp)
li a2,0x1000
lw t9,-0x71dc(gp)
or a1,zero,zero
or a0,s5,zero
sw s2,0x68(sp)
sw s3,0x6c(sp)
addiu s7,sp,0x78
sb zero,0x10a4(sp)
jalr t9
_sll s4,s8,0x1
or v1,zero,zero
lw gp,0x28(sp)
or v0,zero,zero
sw v1,0x74(sp)
lw t9,-0x747c(gp)
jalr t9
_sw v0,0x70(sp)
lw gp,0x28(sp)
or s1,v0,zero
ldc1 f24,-0x5b00(s2)
sw s7,0x44(sp)
ldc1 f22,0x1418(s3)
lw v0,-0x7fc8(gp)
ldc1 f20,-0x5af0(v0)
lw v0,-0x7f64(gp)
lw t9,-0x6f40(gp)
lw a0,0x44(sp)
addiu v0,v0,-0x7380
sw v0,0x38(sp)
lw v0,-0x7fcc(gp)
sw v0,0x54(sp)
lw v0,-0x7fcc(gp)
jalr t9
_sw v0,0x5c(sp)
lw gp,0x28(sp)
lw t9,-0x709c(gp)
jalr t9
_or a0,zero,zero
or a0,zero,zero
lw gp,0x28(sp)
lw t9,-0x71c4(gp)
jalr t9
_or s6,v0,zero
lw gp,0x28(sp)
lw v1,0x0(s1)
sw v0,0x48(sp)
li v0,0x8
sw zero,0x40(sp)
sw v0,0x20(s0)
li v0,0x10
addu s4,v1,s4
sw v0,0x8(s0)
lw v0,-0x7fcc(gp)
addiu v0,v0,-0x5828
sw v0,0x50(sp)
lw v0,-0x7f64(gp)
addiu v0,v0,-0x79c4
sw v0,0x58(sp)
lhu v0,0x0(s4)
andi a0,v0,0x80
beq a0,zero,0x00253b48
_lw t9,-0x783c(gp)
li a0,0x3a
beq s8,a0,0x00253b44
_li a0,0x7b
beq s8,a0,0x002544f8
_andi v0,v0,0x800
beq v0,zero,0x002544d4
_li v0,0x3d
beq s8,v0,0x0025488c
_nop
or s4,s5,zero
li s2,-0x1
li s3,0x3d
b 0x002539e4
_or v0,s8,zero
beq v0,s3,0x002544ec
_or s8,v0,zero
subu v1,s4,s5
sltiu v1,v1,0xfff
beq v1,zero,0x002539fc
_lw t9,-0x70c0(gp)
sb v0,0x0(s4)
addiu s4,s4,0x1
jalr t9
_or a0,s0,zero
bne v0,s2,0x002539dc
_lw gp,0x28(sp)
lw v1,0x0(s1)
or s8,v0,zero
li v0,-0x2
addu v1,v1,v0
sb zero,0x0(s4)
lhu v0,0x0(v1)
andi v0,v0,0x20
beq v0,zero,0x00253a60
_li v0,0x3d
lw t9,-0x70c0(gp)
jalr t9
_or a0,s0,zero
lw v1,0x0(s1)
sll a0,v0,0x1
addu v1,v1,a0
lhu v1,0x0(v1)
andi v1,v1,0x20
bne v1,zero,0x00253a30
_lw gp,0x28(sp)
or s8,v0,zero
li v0,0x3d
beq s8,v0,0x00254728
_or s7,s6,zero
sb zero,0x0(s7)
li v0,0x7b
lb v1,0x0(s6)
beq v1,v0,0x00254630
_lw t9,-0x7578(gp)
lbu v0,0x20a4(sp)
addiu v0,v0,-0x41
andi v0,v0,0xff
sltiu v1,v0,0x37
beq v1,zero,0x002544b4
_lw v1,0x38(sp)
sll v0,v0,0x2
addu v0,v1,v0
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
lw t9,-0x77a0(gp)
or a0,s5,zero
jalr t9
_lw a1,0x50(sp)
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw t9,-0x745c(gp)
or a0,s6,zero
jalr t9
_lw a1,0x44(sp)
ldc1 f0,0x78(sp)
andi v0,v0,0x8
lw gp,0x28(sp)
bne v0,zero,0x00254de4
_sdc1 f0,0x1e0(s0)
sdc1 f0,0x1e8(s0)
lw v1,0x0(s1)
sll v0,s8,0x1
addu v0,v1,v0
lhu v0,0x0(v0)
andi a0,v0,0x20
beq a0,zero,0x0025399c
_andi a0,v0,0x80
lw t9,-0x70c0(gp)
jalr t9
_or a0,s0,zero
lw v1,0x0(s1)
sll a0,v0,0x1
addu a0,v1,a0
lhu a0,0x0(a0)
andi a1,a0,0x20
bne a1,zero,0x00253b08
_lw gp,0x28(sp)
or s8,v0,zero
or v0,a0,zero
andi a0,v0,0x80
bne a0,zero,0x002539a8
_li a0,0x3a
lw t9,-0x783c(gp)
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
lw t9,-0x70c0(gp)
jalr t9
_or a0,s0,zero
addiu a0,sp,0x10a4
lw gp,0x28(sp)
lw a1,-0x7f64(gp)
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x7474
bne v0,zero,0x00254ab4
_lw gp,0x28(sp)
lw v0,0x0(s0)
beq v0,zero,0x00254ab8
_lw a0,0x40(sp)
lw v0,0x8(s0)
beq v0,zero,0x00254ab8
_nop
lw v0,0x18(s0)
beq v0,zero,0x00254ab8
_nop
lw v0,0x1c(s0)
beq v0,zero,0x00254ab8
_nop
lw v0,0x2c0(s0)
sltiu v1,v0,0x41
beq v1,zero,0x00254ab8
_nop
lw v1,0x2c4(s0)
sltiu a0,v1,0x39
beq a0,zero,0x00254ab4
_addu v0,v0,v1
sltiu v0,v0,0x40
beq v0,zero,0x00254ab8
_lw a0,0x40(sp)
lw v0,0x20(s0)
addiu v0,v0,-0x1
sltiu v0,v0,0x40
beq v0,zero,0x00254ab8
_lw t9,-0x71c4(gp)
jalr t9
_or a0,zero,zero
lw v1,0x48(sp)
bne v1,v0,0x0025510c
_lw gp,0x28(sp)
lw v0,0x204(s0)
bne v0,zero,0x002548bc
_lw t9,-0x709c(gp)
lw v0,0x40(sp)
bne v0,zero,0x00254944
_lw t9,-0x7378(gp)
lw t9,-0x76c8(gp)
or a1,zero,zero
jalr t9
_or a0,s0,zero
li v1,0x2
lw a0,0x0(s0)
or s4,v0,zero
beq a0,v1,0x00254b50
_lw gp,0x28(sp)
lw v1,0x3c(sp)
lw v0,0x1dc(v1)
beq v0,zero,0x00253c5c
_lw t9,-0x7094(gp)
lw v0,0x2c(v1)
bne v0,zero,0x00254a78
_nop
or a2,zero,zero
lw a3,0x18(s0)
jalr t9
_li a0,0xa
beq v0,zero,0x002550a8
_lw gp,0x28(sp)
lw t9,-0x7094(gp)
or a2,zero,zero
lw a3,0x1c(s0)
jalr t9
_li a0,0x4
beq v0,zero,0x002550a8
_lw gp,0x28(sp)
lw v0,0x34(sp)
addiu a3,sp,0x70
lw t9,-0x7af0(gp)
li a2,0x1
lw a1,0x60(sp)
or a0,s0,zero
jalr t9
_sw v0,0x10(sp)
beq v0,zero,0x00255408
_lw gp,0x28(sp)
lw t9,-0x7168(gp)
jalr t9
_or a0,s0,zero
bne v0,zero,0x00255370
_lw gp,0x28(sp)
b 0x00253cdc
_li s2,-0x1
beq v0,s2,0x0025489c
_lw t9,-0x7228(gp)
lw t9,-0x70c0(gp)
jalr t9
_or a0,s0,zero
lw v1,0x0(s1)
sll s4,v0,0x1
addu v1,v1,s4
lhu v1,0x0(v1)
andi v1,v1,0x80
beq v1,zero,0x00253cd4
_lw gp,0x28(sp)
or s8,v0,zero
li v0,-0x1
beq s8,v0,0x00254898
_lw t9,-0x7920(gp)
or a1,s0,zero
lw a0,0x3c(sp)
jalr t9
_lw a2,0x34(sp)
lw gp,0x28(sp)
lw t9,-0x7440(gp)
jalr t9
_or a0,s0,zero
beq v0,zero,0x00253da8
_lw gp,0x28(sp)
lw t9,-0x74a8(gp)
jalr t9
_or a0,s0,zero
lw gp,0x28(sp)
or a0,v0,zero
lw t9,-0x7594(gp)
jalr t9
_or s0,v0,zero
or a0,s0,zero
lw gp,0x28(sp)
or s3,v1,zero
lw t9,-0x73f8(gp)
jalr t9
_or s2,v0,zero
or a0,s0,zero
lw gp,0x28(sp)
or a3,s3,zero
or a2,s2,zero
sw v1,0x14(sp)
sw v0,0x10(sp)
lw a1,-0x7fc4(gp)
lw t9,-0x7bfc(gp)
jalr t9
_addiu a1,a1,-0x168
lw gp,0x28(sp)
bne v0,zero,0x0025390c
_sw v0,0x4c(sp)
lw t9,-0x7228(gp)
jalr t9
_or a0,s0,zero
lw gp,0x28(sp)
lw t9,-0x73a0(gp)
jalr t9
_or a0,s0,zero
b 0x002546dc
_lw gp,0x28(sp)
lw v0,0x54(sp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,v0,-0x5840
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw t9,-0x721c(gp)
or a1,zero,zero
li a0,0x41
jalr t9
_or a2,s6,zero
bltz v0,0x00253aec
_lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x200(s0)
lw t9,-0x77a0(gp)
or a0,s5,zero
jalr t9
_lw a1,0x58(sp)
beq v0,zero,0x00254cb4
_lw gp,0x28(sp)
lw v0,0x5c(sp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,v0,-0x5860
beq v0,zero,0x00254e34
_lw gp,0x28(sp)
lw a1,-0x7fc4(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,0x1e98
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw t9,-0x721c(gp)
or a1,zero,zero
li a0,0x49
jalr t9
_or a2,s6,zero
bltz v0,0x00253aec
_lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x2a0(s0)
lw a1,-0x7fcc(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x5870
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw t9,-0x7570(gp)
li a2,0xa
or a1,zero,zero
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x26c(s0)
lw a1,-0x7fcc(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x587c
beq v0,zero,0x00254d10
_lw gp,0x28(sp)
lw a1,-0x7fcc(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,0x3ed4
beq v0,zero,0x00254e10
_lw gp,0x28(sp)
lw a1,-0x7f64(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x79d8
beq v0,zero,0x00254f74
_lw gp,0x28(sp)
lw a1,-0x7f64(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x79cc
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw t9,-0x7570(gp)
li a2,0xa
or a1,zero,zero
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x1c(s0)
lw a1,-0x7fc8(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,0x6c08
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw t9,-0x7570(gp)
li a2,0xa
or a1,zero,zero
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
b 0x00253aec
_sw v0,0xc(s0)
lw a1,-0x7f64(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x4ddc
beq v0,zero,0x00254cd4
_lw gp,0x28(sp)
lw a1,-0x7f64(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x79f8
beq v0,zero,0x00254f04
_lw gp,0x28(sp)
lw a1,-0x7fcc(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,0x3ecc
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw v0,0x40(sp)
beq v0,zero,0x002550f8
_lw t9,-0x7ae8(gp)
lw t9,-0x709c(gp)
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
or a1,v0,zero
lw t9,-0x7c58(gp)
jalr t9
_lw a0,0x40(sp)
b 0x00253aec
_lw gp,0x28(sp)
lw a1,-0x7fcc(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,0x4370
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw t9,-0x721c(gp)
or a1,zero,zero
li a0,0x36
jalr t9
_or a2,s6,zero
bltz v0,0x00253aec
_lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x10(s0)
lw a1,-0x7f64(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x749c
beq v0,zero,0x00254da4
_lw gp,0x28(sp)
lw a1,-0x7f64(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x748c
bne v0,zero,0x00253aec
_lw gp,0x28(sp)
lw t9,-0x7570(gp)
li a2,0xa
or a1,zero,zero
jalr t9
_or a0,s6,zero
sltiu v1,v0,0x41
lw gp,0x28(sp)
bne v1,zero,0x00253aec
_sw v0,0x2c4(s0)
lw a0,0x40(sp)
beq a0,zero,0x002540cc
_nop
lw t9,-0x765c(gp)
lw a1,-0x78f0(gp)
jalr t9
_nop
lw gp,0x28(sp)
lw t9,-0x783c(gp)
jalr t9
_or a0,s6,zero
li a3,0x245
lw v0,0x3c(sp)
lw gp,0x28(sp)
lw a0,0x34(sp)
addiu v0,v0,0x2210
sw v0,0x1c(sp)
lw v0,-0x7fd0(gp)
lw a2,-0x7f64(gp)
lw a1,-0x7f64(gp)
addiu v0,v0,0x3e28
lw t9,-0x7990(gp)
addiu a2,a2,-0x72a4
sw v0,0x18(sp)
addiu a1,a1,-0x74dc
lw v0,-0x7fc4(gp)
addiu v0,v0,-0x190
sw v0,0x14(sp)
b 0x002546ac
_li v0,0x1a9
lw a1,-0x7f64(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x74cc
beq v0,zero,0x00254dc4
_lw gp,0x28(sp)
lw a1,-0x7fcc(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x5890
beq v0,zero,0x00254ee0
_lw gp,0x28(sp)
lw a1,-0x7f64(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x74b8
beq v0,zero,0x00254fc8
_lw gp,0x28(sp)
lw a1,-0x7f64(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x74a8
beq v0,zero,0x00254f58
_lw gp,0x28(sp)
lw a1,-0x7fcc(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0xeb8
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw t9,-0x7428(gp)
addiu a0,s0,0x204
jalr t9
_or a1,s6,zero
b 0x00253aec
_lw gp,0x28(sp)
lw a1,-0x7fc8(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x18dc
beq v0,zero,0x00254c70
_lw gp,0x28(sp)
lw a1,-0x7fcc(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,0x4310
beq v0,zero,0x00254df0
_lw gp,0x28(sp)
lw a1,-0x7fc8(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x18d4
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw t9,-0x721c(gp)
or a1,zero,zero
li a0,0x15
jalr t9
_or a2,s6,zero
bltz v0,0x00253aec
_lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x268(s0)
lw a1,-0x7fc8(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,0x3ebc
beq v0,zero,0x00254d80
_lw gp,0x28(sp)
lw a1,-0x7fc4(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,0x6ac
beq v0,zero,0x00254ec0
_lw gp,0x28(sp)
lw a1,-0x7f64(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,0x4558
beq v0,zero,0x00254fa4
_lw gp,0x28(sp)
lw a1,-0x7f60(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x2b50
beq v0,zero,0x00254f34
_lw gp,0x28(sp)
lw a1,-0x7f64(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x7a14
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw t9,-0x7570(gp)
li a2,0xa
or a1,zero,zero
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x18(s0)
lw a1,-0x7fd0(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,0x16e4
beq v0,zero,0x00254c90
_lw gp,0x28(sp)
lw a1,-0x7fcc(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x5904
beq v0,zero,0x00254e90
_lw gp,0x28(sp)
lw a1,-0x7fc8(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,0x3eac
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw t9,-0x7a9c(gp)
lui a1,0x7fff
lw a3,0x34(sp)
addiu a2,s0,0xe0
ori a1,a1,0xffff
jalr t9
_or a0,s6,zero
b 0x00253aec
_lw gp,0x28(sp)
lw a1,-0x7f64(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x7a20
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw t9,-0x721c(gp)
or a1,zero,zero
li a0,0x3a
jalr t9
_or a2,s6,zero
bltz v0,0x00253aec
_lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x2bc(s0)
lw a1,-0x7fc8(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x5948
beq v0,zero,0x00254c54
_lw gp,0x28(sp)
lw a1,-0x7fcc(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x58bc
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw t9,-0x745c(gp)
or a0,s6,zero
jalr t9
_lw a1,0x44(sp)
ldc1 f0,0x78(sp)
andi v0,v0,0x8
lw gp,0x28(sp)
bne v0,zero,0x00254f28
_sdc1 f0,0x1b0(s0)
b 0x00253aec
_sdc1 f0,0x1b8(s0)
lw a1,-0x7fcc(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x58d4
beq v0,zero,0x00254d5c
_lw gp,0x28(sp)
lw a1,-0x7f64(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x74b0
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw t9,-0x7148(gp)
or a1,zero,zero
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
b 0x00253aec
_sdc1 f0,0x2d8(s0)
lw a1,-0x7fc4(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0xdd0
beq v0,zero,0x00254d40
_lw gp,0x28(sp)
lw a1,-0x7f64(gp)
or a0,s5,zero
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,-0x7a0c
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
lw t9,-0x7570(gp)
li a2,0xa
or a1,zero,zero
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x27c(s0)
lw t9,-0x737c(gp)
or a2,s6,zero
lw a3,0x34(sp)
or a1,s5,zero
jalr t9
_or a0,s0,zero
b 0x00253aec
_lw gp,0x28(sp)
lw t9,-0x70c0(gp)
jalr t9
_or a0,s0,zero
lw gp,0x28(sp)
b 0x00253aec
_or s8,v0,zero
lw v1,0x0(s1)
b 0x00253a18
_li v0,0x7a
lw t9,-0x709c(gp)
jalr t9
_or a0,zero,zero
lw gp,0x28(sp)
beq v0,zero,0x00254658
_or s8,v0,zero
li s3,0x1000
li s4,0x5c
or s2,v0,zero
lw t9,-0x70c0(gp)
jalr t9
_or a0,s0,zero
lw gp,0x28(sp)
beq v0,s4,0x00254578
_or s7,v0,zero
li v0,-0x1
beq s7,v0,0x002545e4
_li v0,0x7d
beq s7,v0,0x002545e4
_subu v0,s8,s2
addiu v0,v0,0x1
sltu v0,v0,s3
beq v0,zero,0x0025459c
_nop
lw t9,-0x70c0(gp)
or a0,s0,zero
sb s7,0x0(s8)
jalr t9
_addiu s8,s8,0x1
lw gp,0x28(sp)
bne v0,s4,0x00254534
_or s7,v0,zero
lw t9,-0x70c0(gp)
jalr t9
_or a0,s0,zero
or s7,v0,zero
subu v0,s8,s2
addiu v0,v0,0x1
sltu v0,v0,s3
bne v0,zero,0x00254558
_lw gp,0x28(sp)
sll s3,s3,0x1
lw t9,-0x7490(gp)
li a2,0x1
sb zero,0x0(s8)
addiu a1,s3,0x1000
jalr t9
_or a0,s2,zero
lw gp,0x28(sp)
beq v0,zero,0x00254658
_or s2,v0,zero
lw t9,-0x7578(gp)
jalr t9
_or a0,v0,zero
addu v0,s2,v0
lw gp,0x28(sp)
addiu s8,v0,0x1
b 0x0025451c
_sb s7,0x0(v0)
lw a1,-0x7fc8(gp)
or a2,s2,zero
lw t9,-0x737c(gp)
or a0,s0,zero
lw a3,0x34(sp)
addiu a1,a1,-0x1928
jalr t9
_sb zero,0x0(s8)
lw gp,0x28(sp)
lw t9,-0x783c(gp)
jalr t9
_or a0,s2,zero
lw gp,0x28(sp)
lw t9,-0x70c0(gp)
jalr t9
_or a0,s0,zero
lw gp,0x28(sp)
b 0x00253aec
_or s8,v0,zero
jalr t9
_or a0,s6,zero
addiu a1,s6,0x1
lw gp,0x28(sp)
or a2,v0,zero
lw t9,-0x7074(gp)
jalr t9
_or a0,s6,zero
b 0x00253a7c
_lw gp,0x28(sp)
lw t9,-0x783c(gp)
jalr t9
_or a0,s6,zero
li a3,0x10e
lw v0,0x3c(sp)
lw gp,0x28(sp)
lw a0,0x34(sp)
addiu v0,v0,0x2210
sw v0,0x1c(sp)
lw v0,-0x7fd0(gp)
lw a2,-0x7f64(gp)
lw a1,-0x7f64(gp)
addiu v0,v0,0x3e28
lw t9,-0x7990(gp)
addiu a2,a2,-0x72a4
sw v0,0x18(sp)
addiu a1,a1,-0x74dc
lw v0,-0x7fd0(gp)
addiu v0,v0,0x16f8
sw v0,0x14(sp)
li v0,0x190
jalr t9
_sw v0,0x10(sp)
lw gp,0x28(sp)
lw t9,-0x7228(gp)
jalr t9
_or a0,s0,zero
lw gp,0x28(sp)
lw t9,-0x73a0(gp)
jalr t9
_or a0,s0,zero
or v0,zero,zero
lw gp,0x28(sp)
lw v1,0x64(sp)
lw a0,0x30a4(sp)
lw v1,0x0(v1)
bne a0,v1,0x002555b8
_lw ra,0x30cc(sp)
lw s8,0x30c8(sp)
lw s7,0x30c4(sp)
lw s6,0x30c0(sp)
lw s5,0x30bc(sp)
lw s4,0x30b8(sp)
lw s3,0x30b4(sp)
lw s2,0x30b0(sp)
lw s1,0x30ac(sp)
lw s0,0x30a8(sp)
ldc1 f24,0x30e0(sp)
ldc1 f22,0x30d8(sp)
ldc1 f20,0x30d0(sp)
jr ra
_addiu sp,sp,0x30e8
lw t9,-0x70c0(gp)
jalr t9
_or a0,s0,zero
li v1,0x7d
lw gp,0x28(sp)
beq v0,v1,0x00254fe4
_or s8,v0,zero
li v0,-0x1
beq s8,v0,0x00254fe4
_li s2,0xfff
b 0x002547f0
_li s3,0x7d
sll s2,s2,0x1
li a2,0x1
sb zero,0x0(s7)
addiu a1,s2,0x1000
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
beq v0,zero,0x00254844
_or s6,v0,zero
lw t9,-0x7578(gp)
jalr t9
_or a0,v0,zero
lw gp,0x28(sp)
addu s4,s6,v0
lw t9,-0x70c0(gp)
or a0,s0,zero
sb s8,0x0(s4)
jalr t9
_addiu s7,s4,0x1
or s8,v0,zero
li v0,0x5c
beq s8,v0,0x0025480c
_lw gp,0x28(sp)
lb v0,0x0(s6)
li v1,0x7b
beq v0,v1,0x002547e0
_nop
lw v0,0x0(s1)
sll v1,s8,0x1
addu v0,v0,v1
lhu v0,0x0(v0)
andi v0,v0,0x20
bne v0,zero,0x00253a68
_nop
beq s8,s3,0x0025483c
_li v0,-0x1
beq s8,v0,0x0025483c
_nop
subu v0,s7,s6
addiu v0,v0,0x1
sltu v0,v0,s2
beq v0,zero,0x00254758
_lw t9,-0x7490(gp)
b 0x00254790
_or s4,s7,zero
lw t9,-0x70c0(gp)
jalr t9
_or a0,s0,zero
lw gp,0x28(sp)
beq v0,s3,0x00254a58
_or s8,v0,zero
lb v0,0x0(s6)
li v1,0x7b
bne v0,v1,0x002547c4
_li v0,-0x1
bne s8,v0,0x002547f4
_subu v0,s7,s6
bne s6,zero,0x00253a68
_nop
lw v0,0x3c(sp)
li a3,0x14c
addiu v0,v0,0x2210
sw v0,0x1c(sp)
lw v0,-0x7fd0(gp)
lw a2,-0x7f64(gp)
lw a1,-0x7f64(gp)
addiu v0,v0,0x3e28
lw t9,-0x7990(gp)
addiu a2,a2,-0x72a4
lw a0,0x34(sp)
sw v0,0x18(sp)
addiu a1,a1,-0x74dc
lw v0,-0x7fd0(gp)
addiu v0,v0,0x16f8
sw v0,0x14(sp)
b 0x002546ac
_li v0,0x190
li v0,0x7a
b 0x00253a18
_or s4,s5,zero
lw t9,-0x7228(gp)
jalr t9
_or a0,s0,zero
lw gp,0x28(sp)
lw t9,-0x7464(gp)
jalr t9
_or a0,s0,zero
b 0x002546dc
_lw gp,0x28(sp)
or a0,zero,zero
or s6,zero,zero
jalr t9
_li s2,0x1000
li s3,-0x1
lw gp,0x28(sp)
or a0,v0,zero
b 0x0025492c
_sw v0,0x208(s0)
sll s2,s2,0x1
lw t9,-0x7490(gp)
lw a0,0x208(s0)
li a2,0x1
jalr t9
_addiu a1,s2,0x1000
lw gp,0x28(sp)
beq v0,zero,0x00254ff4
_sw v0,0x208(s0)
addu s4,v0,s6
lw t9,-0x70c0(gp)
jalr t9
_or a0,s0,zero
beq v0,s3,0x00253c10
_lw gp,0x28(sp)
addiu a0,s4,0x1
sb v0,0x0(s4)
beq v0,zero,0x00253c10
_addiu s6,s6,0x1
addiu v0,s6,0x1000
sltu v0,v0,s2
beq v0,zero,0x002548e0
_sb zero,0x0(a0)
b 0x00254908
_or s4,a0,zero
or a0,v0,zero
jalr t9
_or s8,v0,zero
lw gp,0x28(sp)
lw t9,-0x75a0(gp)
jalr t9
_or a0,s8,zero
lw gp,0x28(sp)
beq v0,zero,0x00254a40
_or s3,v0,zero
lw s6,0x4c(sp)
b 0x00254a08
_lw s7,0x34(sp)
lw t9,-0x7868(gp)
jalr t9
_or a0,s2,zero
lw gp,0x28(sp)
beq v0,zero,0x00254a3c
_or s4,v0,zero
lw t9,-0x7a48(gp)
jalr t9
_or a0,v0,zero
or a1,s2,zero
lw gp,0x28(sp)
or a2,v0,zero
lw t9,-0x7b04(gp)
jalr t9
_or a0,s0,zero
bne s2,v0,0x0025505c
_lw gp,0x28(sp)
lw t9,-0x7218(gp)
or a0,s0,zero
or a3,s7,zero
or a2,s4,zero
jalr t9
_or a1,s3,zero
or a0,s4,zero
lw gp,0x28(sp)
lw t9,-0x7ab4(gp)
jalr t9
_or s6,v0,zero
beq s6,zero,0x00254a3c
_lw gp,0x28(sp)
lw t9,-0x75a0(gp)
jalr t9
_or a0,s8,zero
lw gp,0x28(sp)
beq v0,zero,0x00254a3c
_or s3,v0,zero
lw t9,-0x7b18(gp)
jalr t9
_or a0,s0,zero
or a0,s0,zero
lw gp,0x28(sp)
lw t9,-0x73f8(gp)
jalr t9
_or s2,v0,zero
bne v0,zero,0x00254978
_lw gp,0x28(sp)
sltu v1,v1,s2
beq v1,zero,0x0025497c
_lw t9,-0x7868(gp)
sw s6,0x4c(sp)
lw t9,-0x765c(gp)
lw a1,-0x78f0(gp)
jalr t9
_lw a0,0x40(sp)
b 0x00253c1c
_lw gp,0x28(sp)
lw t9,-0x70c0(gp)
or a0,s0,zero
sb v0,0x1(s4)
jalr t9
_addiu s7,s4,0x2
lw gp,0x28(sp)
b 0x002547b4
_or s8,v0,zero
lw a0,0x28(v1)
lw v1,0x26c(s0)
addu v0,v0,a0
addiu v0,v0,-0x1
sltu v0,v1,v0
bne v0,zero,0x00253c5c
_lw t9,-0x7094(gp)
lw t9,-0x7228(gp)
jalr t9
_or a0,s0,zero
lw v0,0x4c(sp)
bne v0,zero,0x002548a8
_lw gp,0x28(sp)
b 0x00253dbc
_lw t9,-0x73a0(gp)
lw a0,0x40(sp)
beq a0,zero,0x00254ad4
_nop
lw t9,-0x765c(gp)
lw a1,-0x78f0(gp)
jalr t9
_nop
lw gp,0x28(sp)
lw v0,0x3c(sp)
li a3,0x31d
lw a2,-0x7f64(gp)
lw a1,-0x7f64(gp)
addiu v0,v0,0x2210
lw t9,-0x7990(gp)
addiu a2,a2,-0x72a4
lw a0,0x34(sp)
sw v0,0x1c(sp)
addiu a1,a1,-0x74dc
lw v0,-0x7fd0(gp)
addiu v0,v0,0x3e28
sw v0,0x18(sp)
lw v0,-0x7fc4(gp)
b 0x00254118
_addiu v0,v0,-0x190
li a3,0xc5
lw a2,-0x7f64(gp)
ori a0,zero,0x8000
lw a1,-0x7f64(gp)
addiu v0,v0,0x2210
lw t9,-0x76d0(gp)
addiu a2,a2,-0x72a4
sw v0,0x14(sp)
addiu a1,a1,-0x74dc
lw v0,-0x7fcc(gp)
addiu v0,v0,-0x62ac
jalr t9
_sw v0,0x10(sp)
b 0x002537e8
_lw gp,0x28(sp)
sll s2,v0,0x1
lw t9,-0x73f8(gp)
lw s3,0x24(s0)
or a0,s0,zero
jalr t9
_addu s2,s2,v0
srl s2,s2,0x3
lw gp,0x28(sp)
beq v0,zero,0x00255538
_mul s3,s2,s3
lw a0,0x24(s0)
li a1,0x58
lw t9,-0x73a4(gp)
jalr t9
_addiu a0,a0,0x1
lw gp,0x28(sp)
beq v0,zero,0x00255588
_sw v0,0x28(s0)
lw a0,0x24(s0)
beq a0,zero,0x00253c44
_lw v1,0x3c(sp)
lw t9,-0x73a4(gp)
jalr t9
_or a1,s2,zero
lw gp,0x28(sp)
beq v0,zero,0x002554e8
_or s3,v0,zero
lw a1,0x24(s0)
or a2,v0,zero
lw t9,-0x7b04(gp)
or a0,s0,zero
jalr t9
_mul a1,s2,a1
lw v1,0x24(s0)
mul s2,v1,s2
bne s2,v0,0x00255470
_lw gp,0x28(sp)
li v0,0x10
beq s4,v0,0x002552e4
_li v0,0x20
beq s4,v0,0x0025521c
_li v0,0x8
beq s4,v0,0x0025518c
_lw t9,-0x78f0(gp)
jalr t9
_or a0,s3,zero
li a3,0x398
lw v0,0x3c(sp)
lw gp,0x28(sp)
lw a0,0x34(sp)
addiu v0,v0,0x2210
sw v0,0x1c(sp)
lw v0,-0x7fd0(gp)
lw a2,-0x7f64(gp)
lw a1,-0x7f64(gp)
addiu v0,v0,0x3e28
lw t9,-0x7990(gp)
addiu a2,a2,-0x72a4
sw v0,0x18(sp)
addiu a1,a1,-0x74dc
lw v0,-0x7fcc(gp)
addiu v0,v0,-0x5aa8
sw v0,0x14(sp)
b 0x002546ac
_li v0,0x1a9
lw t9,-0x7148(gp)
or a1,zero,zero
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
b 0x00253aec
_sdc1 f0,0x190(s0)
lw t9,-0x7570(gp)
li a2,0xa
or a1,zero,zero
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x270(s0)
lw t9,-0x7a9c(gp)
lui a1,0x7fff
lw a3,0x34(sp)
addiu a2,s0,0x88
ori a1,a1,0xffff
jalr t9
_or a0,s6,zero
b 0x00253aec
_lw gp,0x28(sp)
lw t9,-0x7364(gp)
li a2,0xa
or a1,zero,zero
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x278(s0)
lw t9,-0x6f3c(gp)
jalr t9
_or a0,s6,zero
addiu a1,s0,0x228
lw gp,0x28(sp)
or a0,v0,zero
lw t9,-0x7a84(gp)
jalr t9
_or s2,v0,zero
lw gp,0x28(sp)
lw t9,-0x783c(gp)
jalr t9
_or a0,s2,zero
b 0x00253aec
_lw gp,0x28(sp)
lw t9,-0x745c(gp)
or a0,s6,zero
jalr t9
_lw a1,0x44(sp)
ldc1 f0,0x78(sp)
andi v0,v0,0x8
lw gp,0x28(sp)
beq v0,zero,0x00253aec
_sdc1 f0,0x198(s0)
ldc1 f0,0x80(sp)
b 0x00253aec
_sdc1 f0,0x1a0(s0)
lw t9,-0x7074(gp)
li a2,0x1000
addiu a0,sp,0x10a4
jalr t9
_or a1,s6,zero
b 0x00253aec
_lw gp,0x28(sp)
lw t9,-0x721c(gp)
or a1,zero,zero
li a0,0x18
jalr t9
_or a2,s6,zero
bltz v0,0x00253aec
_lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x25c(s0)
lw t9,-0x721c(gp)
or a1,zero,zero
li a0,0x5
jalr t9
_or a2,s6,zero
bltz v0,0x00253aec
_lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x0(s0)
lw t9,-0x7570(gp)
li a2,0xa
or a1,zero,zero
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x2c0(s0)
lw t9,-0x7570(gp)
li a2,0xa
or a1,zero,zero
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x48(sp)
ldc1 f0,0x80(sp)
b 0x00253aec
_sdc1 f0,0x1e8(s0)
lw t9,-0x7570(gp)
li a2,0xa
or a1,zero,zero
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x20(s0)
lw t9,-0x721c(gp)
or a1,zero,zero
li a0,0x23
jalr t9
_or a2,s6,zero
bltz v0,0x00253aec
_lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x1f8(s0)
lw t9,-0x6f3c(gp)
jalr t9
_or a0,s6,zero
addiu a1,s0,0x290
lw gp,0x28(sp)
or a0,v0,zero
lw t9,-0x7a84(gp)
jalr t9
_or s2,v0,zero
lw gp,0x28(sp)
lw t9,-0x783c(gp)
jalr t9
_or a0,s2,zero
or a0,s5,zero
lw gp,0x28(sp)
lw a1,-0x7fc4(gp)
lw t9,-0x77a0(gp)
jalr t9
_addiu a1,a1,0x1e98
bne v0,zero,0x002544b4
_lw gp,0x28(sp)
b 0x00253e60
_lw t9,-0x721c(gp)
lw t9,-0x745c(gp)
or a0,s6,zero
jalr t9
_lw a1,0x44(sp)
ldc1 f0,0x78(sp)
andi v0,v0,0x8
lw gp,0x28(sp)
beq v0,zero,0x002550a0
_sdc1 f0,0x1c8(s0)
ldc1 f0,0x80(sp)
b 0x00253aec
_sdc1 f0,0x1d0(s0)
lw t9,-0x7570(gp)
li a2,0xa
or a1,zero,zero
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x24(s0)
lw t9,-0x7a9c(gp)
lui a1,0x7fff
lw a3,0x34(sp)
addiu a2,s0,0x3370
ori a1,a1,0xffff
jalr t9
_or a0,s6,zero
b 0x00253aec
_lw gp,0x28(sp)
lw t9,-0x721c(gp)
or a1,zero,zero
li a0,0x38
jalr t9
_or a2,s6,zero
bltz v0,0x00253aec
_lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x254(s0)
ldc1 f0,0x80(sp)
b 0x00253aec
_sdc1 f0,0x1b8(s0)
lw t9,-0x721c(gp)
or a1,zero,zero
li a0,0xe
jalr t9
_or a2,s6,zero
bltz v0,0x00253aec
_lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x8(s0)
lw t9,-0x7148(gp)
or a1,zero,zero
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
b 0x00253aec
_sdc1 f0,0x2e0(s0)
lw t9,-0x745c(gp)
or a0,s6,zero
jalr t9
_lw a1,0x44(sp)
ldc1 f0,0x78(sp)
andi v0,v0,0x8
lw gp,0x28(sp)
beq v0,zero,0x002550f0
_sdc1 f0,0x218(s0)
ldc1 f0,0x80(sp)
b 0x00253aec
_sdc1 f0,0x220(s0)
lw t9,-0x721c(gp)
or a1,zero,zero
li a0,0x9
jalr t9
_or a2,s6,zero
bltz v0,0x00253aec
_lw gp,0x28(sp)
b 0x00253aec
_sw v0,0x4(s0)
lw t9,-0x7148(gp)
or a1,zero,zero
jalr t9
_or a0,s6,zero
lw gp,0x28(sp)
b 0x00253aec
_sdc1 f0,0x2e8(s0)
bne s6,zero,0x00253a68
_or s7,s6,zero
b 0x00254848
_lw v0,0x3c(sp)
lw a0,0x40(sp)
beq a0,zero,0x00255014
_nop
lw t9,-0x765c(gp)
lw a1,-0x78f0(gp)
jalr t9
_nop
lw gp,0x28(sp)
lw v0,0x3c(sp)
li a3,0x341
lw a2,-0x7f64(gp)
lw a1,-0x7f64(gp)
addiu v0,v0,0x2210
lw t9,-0x7990(gp)
addiu a2,a2,-0x72a4
lw a0,0x34(sp)
sw v0,0x1c(sp)
addiu a1,a1,-0x74dc
lw v0,-0x7fd0(gp)
addiu v0,v0,0x3e28
sw v0,0x18(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x18cc
sw v0,0x14(sp)
b 0x002546ac
_li v0,0x1a9
lw t9,-0x7ab4(gp)
or a0,s4,zero
jalr t9
_sw s6,0x4c(sp)
lw gp,0x28(sp)
lw t9,-0x765c(gp)
lw a1,-0x78f0(gp)
jalr t9
_lw a0,0x40(sp)
b 0x00253c1c
_lw gp,0x28(sp)
lw t9,-0x73a0(gp)
jalr t9
_or a0,s0,zero
or v0,zero,zero
b 0x002546dc
_lw gp,0x28(sp)
b 0x00253aec
_sdc1 f0,0x1d0(s0)
lw v0,0x3c(sp)
li a3,0x3db
lw a2,-0x7f64(gp)
lw a1,-0x7f64(gp)
addiu v0,v0,0x2210
lw t9,-0x7990(gp)
addiu a2,a2,-0x72a4
lw a0,0x34(sp)
sw v0,0x1c(sp)
addiu a1,a1,-0x74dc
lw v0,-0x7fd0(gp)
addiu v0,v0,0x3e28
sw v0,0x18(sp)
lw v0,-0x7fd0(gp)
addiu v0,v0,0x1284
sw v0,0x14(sp)
b 0x002546ac
_li v0,0x1d1
b 0x00253aec
_sdc1 f0,0x220(s0)
jalr t9
_or a0,zero,zero
lw gp,0x28(sp)
b 0x00253fe8
_sw v0,0x40(sp)
lw a0,0x40(sp)
beq a0,zero,0x0025512c
_nop
lw t9,-0x765c(gp)
lw a1,-0x78f0(gp)
jalr t9
_nop
lw gp,0x28(sp)
lw v0,0x3c(sp)
li a3,0x323
lw a2,-0x7f64(gp)
lw a1,-0x7f64(gp)
addiu v0,v0,0x2210
lw t9,-0x7990(gp)
addiu a2,a2,-0x72a4
lw a0,0x34(sp)
sw v0,0x1c(sp)
addiu a1,a1,-0x74dc
lw v0,-0x7fd0(gp)
addiu v0,v0,0x3e28
sw v0,0x18(sp)
lw v0,-0x7f64(gp)
addiu v0,v0,-0x7460
sw v0,0x14(sp)
b 0x002546ac
_li v0,0x1bd
lw t9,-0x7964(gp)
jalr t9
_or a0,s0,zero
or v0,zero,zero
b 0x002546dc
_lw gp,0x28(sp)
blez v1,0x00255208
_sll a1,v1,0x1
lw v0,0x28(s0)
or a0,s3,zero
addu v1,a1,v1
addiu v0,v0,0x28
addu v1,s3,v1
lbu a1,0x0(a0)
addiu v0,v0,0x58
addiu a0,a0,0x3
mtc1 a1,f0
cvt.d.W f0,f0
mul.D f0,f0,f20
cvt.s.D f0,f0
cvt.d.S f0,f0
sdc1 f0,-0x58(v0)
lbu a1,-0x2(a0)
mtc1 a1,f0
cvt.d.W f0,f0
mul.D f0,f0,f20
cvt.s.D f0,f0
cvt.d.S f0,f0
sdc1 f0,-0x50(v0)
lbu a1,-0x1(a0)
mtc1 a1,f0
cvt.d.W f0,f0
mul.D f0,f0,f20
cvt.s.D f0,f0
cvt.d.S f0,f0
bne v1,a0,0x002551a8
_sdc1 f0,-0x48(v0)
lw t9,-0x78f0(gp)
jalr t9
_or a0,s3,zero
b 0x00253c40
_lw gp,0x28(sp)
blez v1,0x00255208
_lw v0,0x6c(sp)
sll a0,v1,0x1
lw a2,0x68(sp)
addu v1,a0,v1
lw a1,0x28(s0)
ldc1 f4,0x1418(v0)
or v0,s3,zero
sll v1,v1,0x2
ldc1 f2,-0x5b00(a2)
addiu a0,a1,0x28
addu v1,s3,v1
mov.D f8,f4
mov.D f6,f2
lwl a1,0x0(v0)
lwr a1,0x3(v0)
mtc1 a1,f0
bgez a1,0x0025526c
_cvt.d.W f0,f0
add.D f0,f0,f4
or a2,v0,zero
div.D f0,f0,f24
cvt.s.D f0,f0
cvt.d.S f0,f0
sdc1 f0,0x0(a0)
lwl a1,0x4(v0)
lwr a1,0x7(v0)
mtc1 a1,f0
bgez a1,0x00255298
_cvt.d.W f0,f0
add.D f0,f0,f8
addiu v0,v0,0xc
div.D f0,f0,f2
cvt.s.D f0,f0
cvt.d.S f0,f0
sdc1 f0,0x8(a0)
lwl a1,0x8(a2)
lwr a1,0xb(a2)
mtc1 a1,f0
bgez a1,0x002552c4
_cvt.d.W f0,f0
add.D f0,f0,f22
addiu a0,a0,0x58
div.D f0,f0,f6
cvt.s.D f0,f0
cvt.d.S f0,f0
bne v0,v1,0x00255254
_sdc1 f0,-0x48(a0)
b 0x0025520c
_lw t9,-0x78f0(gp)
blez v1,0x00255208
_sll a0,v1,0x1
lw a1,0x28(s0)
or v0,s3,zero
addu v1,a0,v1
addiu a0,a1,0x28
sll v1,v1,0x1
addu v1,s3,v1
lbu a2,0x0(v0)
addiu a0,a0,0x58
lbu a1,0x1(v0)
or a3,v0,zero
addiu v0,v0,0x6
sll a2,a2,0x8
or a1,a1,a2
mtc1 a1,f0
cvt.d.W f0,f0
sdc1 f0,-0x58(a0)
lbu a2,-0x4(v0)
lbu a1,-0x3(v0)
sll a2,a2,0x8
or a1,a1,a2
mtc1 a1,f0
cvt.d.W f0,f0
sdc1 f0,-0x50(a0)
lbu a2,0x4(a3)
lbu a1,0x5(a3)
sll a2,a2,0x8
or a1,a1,a2
mtc1 a1,f0
cvt.d.W f0,f0
bne v0,v1,0x00255304
_sdc1 f0,-0x48(a0)
b 0x0025520c
_lw t9,-0x78f0(gp)
lw t9,-0x6f00(gp)
jalr t9
_nop
lw gp,0x28(sp)
lw t9,-0x74c4(gp)
jalr t9
_lw a0,0x0(v0)
addiu v1,s0,0x340
lw gp,0x28(sp)
or s1,v0,zero
sw v0,0x20(sp)
li a3,0x3e8
sw v1,0x1c(sp)
lw a0,0x34(sp)
lw v0,-0x7fd0(gp)
lw a2,-0x7f64(gp)
lw a1,-0x7f64(gp)
addiu v0,v0,0xe78
lw t9,-0x7990(gp)
addiu a2,a2,-0x72a4
sw v0,0x18(sp)
addiu a1,a1,-0x74dc
lw v0,-0x7fc4(gp)
addiu v0,v0,-0x17c
sw v0,0x14(sp)
li v0,0x1a9
jalr t9
_sw v0,0x10(sp)
lw gp,0x28(sp)
lw t9,-0x783c(gp)
jalr t9
_or a0,s1,zero
lw gp,0x28(sp)
lw t9,-0x7228(gp)
jalr t9
_or a0,s0,zero
b 0x002548a8
_lw gp,0x28(sp)
lw s1,0x34(sp)
or a0,s0,zero
lw t9,-0x7404(gp)
lw a2,0x1c(s0)
lw a1,0x18(s0)
jalr t9
_or a3,s1,zero
li a3,0x3e3
lw v0,0x3c(sp)
or a0,s1,zero
lw gp,0x28(sp)
addiu v0,v0,0x2210
sw v0,0x1c(sp)
lw v0,-0x7fd0(gp)
lw a2,-0x7f64(gp)
lw a1,-0x7f64(gp)
addiu v0,v0,0x3e28
lw t9,-0x7990(gp)
addiu a2,a2,-0x72a4
sw v0,0x18(sp)
addiu a1,a1,-0x74dc
lw v0,-0x7f64(gp)
addiu v0,v0,-0x7450
sw v0,0x14(sp)
b 0x002546ac
_li v0,0x1bd
lw t9,-0x78f0(gp)
jalr t9
_or a0,s3,zero
li a3,0x390
lw v0,0x3c(sp)
lw gp,0x28(sp)
lw a0,0x34(sp)
addiu v0,v0,0x2210
sw v0,0x1c(sp)
lw v0,-0x7fd0(gp)
lw a2,-0x7f64(gp)
lw a1,-0x7f64(gp)
addiu v0,v0,0x3e28
lw t9,-0x7990(gp)
addiu a2,a2,-0x72a4
sw v0,0x18(sp)
addiu a1,a1,-0x74dc
lw v0,-0x7fc4(gp)
addiu v0,v0,0x4a0
sw v0,0x14(sp)
b 0x002546ac
_li v0,0x1a9
li a2,0xc2
lw a1,-0x7f64(gp)
lw a0,-0x7fd0(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x7294
addiu a1,a1,-0x74dc
jalr t9
_addiu a0,a0,0xd78
lw v0,0x3c(sp)
li a3,0x38a
b 0x00254850
_addiu v0,v0,0x2210
li a2,0xc8
lw a1,-0x7f64(gp)
lw a0,-0x7fd0(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x7294
addiu a1,a1,-0x74dc
jalr t9
_addiu a0,a0,0x294c
li a2,0xc7
lw a1,-0x7f64(gp)
lw a0,-0x7fd0(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x7294
addiu a1,a1,-0x74dc
jalr t9
_addiu a0,a0,0x1cac
sltu s3,v1,s3
beq s3,zero,0x00254b78
_lw v0,0x3c(sp)
li a3,0x37d
lw a2,-0x7f64(gp)
lw a1,-0x7f64(gp)
addiu v0,v0,0x2210
lw t9,-0x7990(gp)
addiu a2,a2,-0x72a4
lw a0,0x34(sp)
sw v0,0x1c(sp)
addiu a1,a1,-0x74dc
lw v0,-0x7fd0(gp)
addiu v0,v0,0x3e28
sw v0,0x18(sp)
lw v0,-0x7fc4(gp)
addiu v0,v0,0x4a0
sw v0,0x14(sp)
b 0x002546ac
_li v0,0x1a9
lw v0,0x3c(sp)
li a3,0x381
b 0x00254850
_addiu v0,v0,0x2210
li a2,0xc3
lw a1,-0x7f64(gp)
lw a0,-0x7fd0(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x7294
addiu a1,a1,-0x74dc
jalr t9
_addiu a0,a0,0xda0
lw t9,-0x784c(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Removing unreachable block (ram,0x00255000) */\n/* WARNING: Removing unreachable block (ram,0x00255118) */\n/* WARNING: Removing unreachable block (ram,0x00254944) */\n/* WARNING: Removing unreachable block (ram,0x0025496c) */\n/* WARNING: Removing unreachable block (ram,0x00254a08) */\n/* WARNING: Removing unreachable block (ram,0x00254978) */\n/* WARNING: Removing unreachable block (ram,0x00254a30) */\n/* WARNING: Removing unreachable block (ram,0x0025497c) */\n/* WARNING: Removing unreachable block (ram,0x00254990) */\n/* WARNING: Removing unreachable block (ram,0x0025505c) */\n/* WARNING: Removing unreachable block (ram,0x002549bc) */\n/* WARNING: Removing unreachable block (ram,0x002549f0) */\n/* WARNING: Removing unreachable block (ram,0x00254a3c) */\n/* WARNING: Removing unreachable block (ram,0x00254a40) */\n/* WARNING: Removing unreachable block (ram,0x00254ac0) */\n\nint FUN_0025375c(ushort *param_1,ushort *param_2)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  undefined8 uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  ushort *puVar8;\n  ushort *puVar9;\n  int iVar10;\n  ushort *puVar11;\n  int iVar12;\n  uint uVar13;\n  ushort *puVar14;\n  double *pdVar15;\n  ushort *puVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 uVar23;\n  int iVar24;\n  byte *pbVar25;\n  int *piVar26;\n  undefined1 *puVar27;\n  undefined1 *puVar28;\n  undefined1 *puVar29;\n  int iVar30;\n  int iVar31;\n  int iVar32;\n  ushort *puVar33;\n  int iVar34;\n  undefined *puVar35;\n  undefined1 uVar37;\n  uint uVar36;\n  ushort *puVar38;\n  int iVar39;\n  int iVar40;\n  int iVar41;\n  int iVar42;\n  int iVar43;\n  undefined1 uVar44;\n  undefined1 uVar45;\n  int iVar46;\n  int iVar47;\n  undefined4 uVar48;\n  int iVar49;\n  undefined4 unaff_s3;\n  ushort *unaff_s4;\n  ushort *puVar50;\n  ushort *unaff_s5;\n  int iVar51;\n  undefined1 uVar52;\n  ushort *unaff_s6;\n  ushort *unaff_s7;\n  byte *pbVar53;\n  undefined *puVar54;\n  ushort *unaff_s8;\n  code *pcVar55;\n  double dVar56;\n  double dVar57;\n  float fVar59;\n  double dVar58;\n  undefined2 uVar60;\n  double dVar61;\n  float fVar62;\n  double dVar63;\n  double dVar64;\n  double in_f20_21;\n  double dVar65;\n  double in_f22_23;\n  double in_f24_25;\n  double dVar66;\n  double dVar67;\n  double dVar68;\n  undefined8 uVar69;\n  ushort *puStack_5188;\n  undefined4 uStack_5150;\n  undefined4 uStack_514c;\n  undefined1 auStack_5144 [4096];\n  undefined1 auStack_4144 [4096];\n  int iStack_3144;\n  ushort *puStack_3140;\n  ushort *puStack_313c;\n  undefined8 uStack_3138;\n  ushort *puStack_3130;\n  ushort *puStack_312c;\n  ushort *puStack_3128;\n  ushort *puStack_3124;\n  ushort *puStack_3120;\n  code *pcStack_311c;\n  double dStack_3118;\n  double dStack_3110;\n  double dStack_3108;\n  undefined8 local_30d8;\n  undefined *local_30d0;\n  ushort *local_30cc;\n  ushort *local_30c8;\n  int local_309c;\n  undefined4 local_3078;\n  undefined4 local_3074;\n  ushort local_3070 [22];\n  ushort auStack_3044 [2048];\n  undefined1 local_2044 [4096];\n  ushort local_1044 [2048];\n  int local_44;\n  \n  puVar54 = PTR___stack_chk_guard_003a9230;\n  uVar69 = CONCAT44(param_2,unaff_s3);\n  local_44 = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x190a) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x1908) != 0) {\n    local_30d8._4_4_ = param_1 + 0x1108;\n    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }\n  if (param_2 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_2 + 0xe) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2);\n  puVar38 = (ushort *)0x2;\n  puVar50 = puVar8;\n  local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2);\n  if (local_309c == 0) {\n    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n    iVar10 = 0;\n  }\n  else {\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }\nLAB_002546dc:\n  if (local_44 == *(int *)puVar54) {\n    return iVar10;\n  }\n  pcVar55 = FUN_002555c4;\n  iVar10 = local_44;\n  puVar54 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  piVar18 = *(int **)(puVar54 + 0x153c6c);\n  iStack_3144 = *piVar18;\n  puStack_3140 = puVar8;\n  puStack_313c = param_1;\n  puStack_3130 = unaff_s4;\n  puStack_312c = unaff_s5;\n  puStack_3128 = unaff_s6;\n  puStack_3124 = unaff_s7;\n  puStack_3120 = unaff_s8;\n  pcStack_311c = pcVar55;\n  dStack_3118 = in_f20_21;\n  dStack_3110 = in_f22_23;\n  dStack_3108 = in_f24_25;\n  uStack_3138 = uVar69;\n  if (iVar10 == 0) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);\n    return iVar10;\n  }\n  puVar8 = *(ushort **)(puVar54 + 0x153388);\n  if (*(int *)(iVar10 + 0x3214) != -0x54535255) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);\n    return iVar10;\n  }\n  if (puVar50 != (ushort *)0x0) {\n    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }\n    if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }\n    if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    puVar8 = puVar38;\n    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);\n    if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }\n    if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }\n    (**(code **)(puVar54 + 0x153aa0))();\n  }\n  iVar10 = (**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a);\n  return iVar10;\nLAB_00255f3c:\n  do {\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  } while (pbVar25 != pbVar53);\nLAB_00255f78:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\nLAB_00255d60:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,10);\n  puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n  if (puVar9 == (ushort *)0x0) goto LAB_00255d8c;\n  goto LAB_00255c90;\n}\n\n" comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment (function_definition "int FUN_0025375c(ushort *param_1,ushort *param_2)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  undefined8 uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  ushort *puVar8;\n  ushort *puVar9;\n  int iVar10;\n  ushort *puVar11;\n  int iVar12;\n  uint uVar13;\n  ushort *puVar14;\n  double *pdVar15;\n  ushort *puVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 uVar23;\n  int iVar24;\n  byte *pbVar25;\n  int *piVar26;\n  undefined1 *puVar27;\n  undefined1 *puVar28;\n  undefined1 *puVar29;\n  int iVar30;\n  int iVar31;\n  int iVar32;\n  ushort *puVar33;\n  int iVar34;\n  undefined *puVar35;\n  undefined1 uVar37;\n  uint uVar36;\n  ushort *puVar38;\n  int iVar39;\n  int iVar40;\n  int iVar41;\n  int iVar42;\n  int iVar43;\n  undefined1 uVar44;\n  undefined1 uVar45;\n  int iVar46;\n  int iVar47;\n  undefined4 uVar48;\n  int iVar49;\n  undefined4 unaff_s3;\n  ushort *unaff_s4;\n  ushort *puVar50;\n  ushort *unaff_s5;\n  int iVar51;\n  undefined1 uVar52;\n  ushort *unaff_s6;\n  ushort *unaff_s7;\n  byte *pbVar53;\n  undefined *puVar54;\n  ushort *unaff_s8;\n  code *pcVar55;\n  double dVar56;\n  double dVar57;\n  float fVar59;\n  double dVar58;\n  undefined2 uVar60;\n  double dVar61;\n  float fVar62;\n  double dVar63;\n  double dVar64;\n  double in_f20_21;\n  double dVar65;\n  double in_f22_23;\n  double in_f24_25;\n  double dVar66;\n  double dVar67;\n  double dVar68;\n  undefined8 uVar69;\n  ushort *puStack_5188;\n  undefined4 uStack_5150;\n  undefined4 uStack_514c;\n  undefined1 auStack_5144 [4096];\n  undefined1 auStack_4144 [4096];\n  int iStack_3144;\n  ushort *puStack_3140;\n  ushort *puStack_313c;\n  undefined8 uStack_3138;\n  ushort *puStack_3130;\n  ushort *puStack_312c;\n  ushort *puStack_3128;\n  ushort *puStack_3124;\n  ushort *puStack_3120;\n  code *pcStack_311c;\n  double dStack_3118;\n  double dStack_3110;\n  double dStack_3108;\n  undefined8 local_30d8;\n  undefined *local_30d0;\n  ushort *local_30cc;\n  ushort *local_30c8;\n  int local_309c;\n  undefined4 local_3078;\n  undefined4 local_3074;\n  ushort local_3070 [22];\n  ushort auStack_3044 [2048];\n  undefined1 local_2044 [4096];\n  ushort local_1044 [2048];\n  int local_44;\n  \n  puVar54 = PTR___stack_chk_guard_003a9230;\n  uVar69 = CONCAT44(param_2,unaff_s3);\n  local_44 = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x190a) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x1908) != 0) {\n    local_30d8._4_4_ = param_1 + 0x1108;\n    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }\n  if (param_2 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_2 + 0xe) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2);\n  puVar38 = (ushort *)0x2;\n  puVar50 = puVar8;\n  local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2);\n  if (local_309c == 0) {\n    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n    iVar10 = 0;\n  }\n  else {\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }\nLAB_002546dc:\n  if (local_44 == *(int *)puVar54) {\n    return iVar10;\n  }\n  pcVar55 = FUN_002555c4;\n  iVar10 = local_44;\n  puVar54 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  piVar18 = *(int **)(puVar54 + 0x153c6c);\n  iStack_3144 = *piVar18;\n  puStack_3140 = puVar8;\n  puStack_313c = param_1;\n  puStack_3130 = unaff_s4;\n  puStack_312c = unaff_s5;\n  puStack_3128 = unaff_s6;\n  puStack_3124 = unaff_s7;\n  puStack_3120 = unaff_s8;\n  pcStack_311c = pcVar55;\n  dStack_3118 = in_f20_21;\n  dStack_3110 = in_f22_23;\n  dStack_3108 = in_f24_25;\n  uStack_3138 = uVar69;\n  if (iVar10 == 0) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);\n    return iVar10;\n  }\n  puVar8 = *(ushort **)(puVar54 + 0x153388);\n  if (*(int *)(iVar10 + 0x3214) != -0x54535255) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);\n    return iVar10;\n  }\n  if (puVar50 != (ushort *)0x0) {\n    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }\n    if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }\n    if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    puVar8 = puVar38;\n    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);\n    if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }\n    if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }\n    (**(code **)(puVar54 + 0x153aa0))();\n  }\n  iVar10 = (**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a);\n  return iVar10;\nLAB_00255f3c:\n  do {\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  } while (pbVar25 != pbVar53);\nLAB_00255f78:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\nLAB_00255d60:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,10);\n  puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n  if (puVar9 == (ushort *)0x0) goto LAB_00255d8c;\n  goto LAB_00255c90;\n}" primitive_type (function_declarator "FUN_0025375c(ushort *param_1,ushort *param_2)" identifier (parameter_list "(ushort *param_1,ushort *param_2)" ( (parameter_declaration "ushort *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ushort *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  ushort uVar2;\n  undefined8 uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  ushort *puVar8;\n  ushort *puVar9;\n  int iVar10;\n  ushort *puVar11;\n  int iVar12;\n  uint uVar13;\n  ushort *puVar14;\n  double *pdVar15;\n  ushort *puVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 uVar23;\n  int iVar24;\n  byte *pbVar25;\n  int *piVar26;\n  undefined1 *puVar27;\n  undefined1 *puVar28;\n  undefined1 *puVar29;\n  int iVar30;\n  int iVar31;\n  int iVar32;\n  ushort *puVar33;\n  int iVar34;\n  undefined *puVar35;\n  undefined1 uVar37;\n  uint uVar36;\n  ushort *puVar38;\n  int iVar39;\n  int iVar40;\n  int iVar41;\n  int iVar42;\n  int iVar43;\n  undefined1 uVar44;\n  undefined1 uVar45;\n  int iVar46;\n  int iVar47;\n  undefined4 uVar48;\n  int iVar49;\n  undefined4 unaff_s3;\n  ushort *unaff_s4;\n  ushort *puVar50;\n  ushort *unaff_s5;\n  int iVar51;\n  undefined1 uVar52;\n  ushort *unaff_s6;\n  ushort *unaff_s7;\n  byte *pbVar53;\n  undefined *puVar54;\n  ushort *unaff_s8;\n  code *pcVar55;\n  double dVar56;\n  double dVar57;\n  float fVar59;\n  double dVar58;\n  undefined2 uVar60;\n  double dVar61;\n  float fVar62;\n  double dVar63;\n  double dVar64;\n  double in_f20_21;\n  double dVar65;\n  double in_f22_23;\n  double in_f24_25;\n  double dVar66;\n  double dVar67;\n  double dVar68;\n  undefined8 uVar69;\n  ushort *puStack_5188;\n  undefined4 uStack_5150;\n  undefined4 uStack_514c;\n  undefined1 auStack_5144 [4096];\n  undefined1 auStack_4144 [4096];\n  int iStack_3144;\n  ushort *puStack_3140;\n  ushort *puStack_313c;\n  undefined8 uStack_3138;\n  ushort *puStack_3130;\n  ushort *puStack_312c;\n  ushort *puStack_3128;\n  ushort *puStack_3124;\n  ushort *puStack_3120;\n  code *pcStack_311c;\n  double dStack_3118;\n  double dStack_3110;\n  double dStack_3108;\n  undefined8 local_30d8;\n  undefined *local_30d0;\n  ushort *local_30cc;\n  ushort *local_30c8;\n  int local_309c;\n  undefined4 local_3078;\n  undefined4 local_3074;\n  ushort local_3070 [22];\n  ushort auStack_3044 [2048];\n  undefined1 local_2044 [4096];\n  ushort local_1044 [2048];\n  int local_44;\n  \n  puVar54 = PTR___stack_chk_guard_003a9230;\n  uVar69 = CONCAT44(param_2,unaff_s3);\n  local_44 = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x190a) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x1908) != 0) {\n    local_30d8._4_4_ = param_1 + 0x1108;\n    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }\n  if (param_2 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_2 + 0xe) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2);\n  puVar38 = (ushort *)0x2;\n  puVar50 = puVar8;\n  local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2);\n  if (local_309c == 0) {\n    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n    iVar10 = 0;\n  }\n  else {\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }\nLAB_002546dc:\n  if (local_44 == *(int *)puVar54) {\n    return iVar10;\n  }\n  pcVar55 = FUN_002555c4;\n  iVar10 = local_44;\n  puVar54 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  piVar18 = *(int **)(puVar54 + 0x153c6c);\n  iStack_3144 = *piVar18;\n  puStack_3140 = puVar8;\n  puStack_313c = param_1;\n  puStack_3130 = unaff_s4;\n  puStack_312c = unaff_s5;\n  puStack_3128 = unaff_s6;\n  puStack_3124 = unaff_s7;\n  puStack_3120 = unaff_s8;\n  pcStack_311c = pcVar55;\n  dStack_3118 = in_f20_21;\n  dStack_3110 = in_f22_23;\n  dStack_3108 = in_f24_25;\n  uStack_3138 = uVar69;\n  if (iVar10 == 0) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);\n    return iVar10;\n  }\n  puVar8 = *(ushort **)(puVar54 + 0x153388);\n  if (*(int *)(iVar10 + 0x3214) != -0x54535255) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);\n    return iVar10;\n  }\n  if (puVar50 != (ushort *)0x0) {\n    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }\n    if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }\n    if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    puVar8 = puVar38;\n    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);\n    if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }\n    if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }\n    (**(code **)(puVar54 + 0x153aa0))();\n  }\n  iVar10 = (**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a);\n  return iVar10;\nLAB_00255f3c:\n  do {\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  } while (pbVar25 != pbVar53);\nLAB_00255f78:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\nLAB_00255d60:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,10);\n  puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n  if (puVar9 == (ushort *)0x0) goto LAB_00255d8c;\n  goto LAB_00255c90;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "ushort *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "ushort *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "ushort *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "ushort *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "double *pdVar15;" primitive_type (pointer_declarator "*pdVar15" * identifier) ;) (declaration "ushort *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "undefined4 uVar23;" type_identifier identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "byte *pbVar25;" type_identifier (pointer_declarator "*pbVar25" * identifier) ;) (declaration "int *piVar26;" primitive_type (pointer_declarator "*piVar26" * identifier) ;) (declaration "undefined1 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "undefined1 *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "undefined1 *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "int iVar32;" primitive_type identifier ;) (declaration "ushort *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "int iVar34;" primitive_type identifier ;) (declaration "undefined *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "undefined1 uVar37;" type_identifier identifier ;) (declaration "uint uVar36;" type_identifier identifier ;) (declaration "ushort *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "int iVar39;" primitive_type identifier ;) (declaration "int iVar40;" primitive_type identifier ;) (declaration "int iVar41;" primitive_type identifier ;) (declaration "int iVar42;" primitive_type identifier ;) (declaration "int iVar43;" primitive_type identifier ;) (declaration "undefined1 uVar44;" type_identifier identifier ;) (declaration "undefined1 uVar45;" type_identifier identifier ;) (declaration "int iVar46;" primitive_type identifier ;) (declaration "int iVar47;" primitive_type identifier ;) (declaration "undefined4 uVar48;" type_identifier identifier ;) (declaration "int iVar49;" primitive_type identifier ;) (declaration "undefined4 unaff_s3;" type_identifier identifier ;) (declaration "ushort *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "ushort *puVar50;" type_identifier (pointer_declarator "*puVar50" * identifier) ;) (declaration "ushort *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "int iVar51;" primitive_type identifier ;) (declaration "undefined1 uVar52;" type_identifier identifier ;) (declaration "ushort *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "ushort *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "byte *pbVar53;" type_identifier (pointer_declarator "*pbVar53" * identifier) ;) (declaration "undefined *puVar54;" type_identifier (pointer_declarator "*puVar54" * identifier) ;) (declaration "ushort *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "code *pcVar55;" type_identifier (pointer_declarator "*pcVar55" * identifier) ;) (declaration "double dVar56;" primitive_type identifier ;) (declaration "double dVar57;" primitive_type identifier ;) (declaration "float fVar59;" primitive_type identifier ;) (declaration "double dVar58;" primitive_type identifier ;) (declaration "undefined2 uVar60;" type_identifier identifier ;) (declaration "double dVar61;" primitive_type identifier ;) (declaration "float fVar62;" primitive_type identifier ;) (declaration "double dVar63;" primitive_type identifier ;) (declaration "double dVar64;" primitive_type identifier ;) (declaration "double in_f20_21;" primitive_type identifier ;) (declaration "double dVar65;" primitive_type identifier ;) (declaration "double in_f22_23;" primitive_type identifier ;) (declaration "double in_f24_25;" primitive_type identifier ;) (declaration "double dVar66;" primitive_type identifier ;) (declaration "double dVar67;" primitive_type identifier ;) (declaration "double dVar68;" primitive_type identifier ;) (declaration "undefined8 uVar69;" type_identifier identifier ;) (declaration "ushort *puStack_5188;" type_identifier (pointer_declarator "*puStack_5188" * identifier) ;) (declaration "undefined4 uStack_5150;" type_identifier identifier ;) (declaration "undefined4 uStack_514c;" type_identifier identifier ;) (declaration "undefined1 auStack_5144 [4096];" type_identifier (array_declarator "auStack_5144 [4096]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_4144 [4096];" type_identifier (array_declarator "auStack_4144 [4096]" identifier [ number_literal ]) ;) (declaration "int iStack_3144;" primitive_type identifier ;) (declaration "ushort *puStack_3140;" type_identifier (pointer_declarator "*puStack_3140" * identifier) ;) (declaration "ushort *puStack_313c;" type_identifier (pointer_declarator "*puStack_313c" * identifier) ;) (declaration "undefined8 uStack_3138;" type_identifier identifier ;) (declaration "ushort *puStack_3130;" type_identifier (pointer_declarator "*puStack_3130" * identifier) ;) (declaration "ushort *puStack_312c;" type_identifier (pointer_declarator "*puStack_312c" * identifier) ;) (declaration "ushort *puStack_3128;" type_identifier (pointer_declarator "*puStack_3128" * identifier) ;) (declaration "ushort *puStack_3124;" type_identifier (pointer_declarator "*puStack_3124" * identifier) ;) (declaration "ushort *puStack_3120;" type_identifier (pointer_declarator "*puStack_3120" * identifier) ;) (declaration "code *pcStack_311c;" type_identifier (pointer_declarator "*pcStack_311c" * identifier) ;) (declaration "double dStack_3118;" primitive_type identifier ;) (declaration "double dStack_3110;" primitive_type identifier ;) (declaration "double dStack_3108;" primitive_type identifier ;) (declaration "undefined8 local_30d8;" type_identifier identifier ;) (declaration "undefined *local_30d0;" type_identifier (pointer_declarator "*local_30d0" * identifier) ;) (declaration "ushort *local_30cc;" type_identifier (pointer_declarator "*local_30cc" * identifier) ;) (declaration "ushort *local_30c8;" type_identifier (pointer_declarator "*local_30c8" * identifier) ;) (declaration "int local_309c;" primitive_type identifier ;) (declaration "undefined4 local_3078;" type_identifier identifier ;) (declaration "undefined4 local_3074;" type_identifier identifier ;) (declaration "ushort local_3070 [22];" type_identifier (array_declarator "local_3070 [22]" identifier [ number_literal ]) ;) (declaration "ushort auStack_3044 [2048];" type_identifier (array_declarator "auStack_3044 [2048]" identifier [ number_literal ]) ;) (declaration "undefined1 local_2044 [4096];" type_identifier (array_declarator "local_2044 [4096]" identifier [ number_literal ]) ;) (declaration "ushort local_1044 [2048];" type_identifier (array_declarator "local_1044 [2048]" identifier [ number_literal ]) ;) (declaration "int local_44;" primitive_type identifier ;) (expression_statement "puVar54 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar54 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "uVar69 = CONCAT44(param_2,unaff_s3);" (assignment_expression "uVar69 = CONCAT44(param_2,unaff_s3)" identifier = (call_expression "CONCAT44(param_2,unaff_s3)" identifier (argument_list "(param_2,unaff_s3)" ( identifier , identifier )))) ;) (expression_statement "local_44 = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_44 = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_1 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" if (parenthesized_expression "(param_1 == (ushort *)0x0)" ( (binary_expression "param_1 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" { (expression_statement "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (binary_expression "PTR_LAB_003a88e0 + 0xd78" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) , number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (*(int *)(param_1 + 0x190a) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x190a) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x190a) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x190a)" * (cast_expression "(int *)(param_1 + 0x190a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x190a)" ( (binary_expression "param_1 + 0x190a" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" { (expression_statement "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (binary_expression "PTR_LAB_003a88e0 + 0xda0" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) , number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (*(int *)(param_1 + 0x1908) != 0) {\n    local_30d8._4_4_ = param_1 + 0x1108;\n    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x1908) != 0)" ( (binary_expression "*(int *)(param_1 + 0x1908) != 0" (pointer_expression "*(int *)(param_1 + 0x1908)" * (cast_expression "(int *)(param_1 + 0x1908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1908)" ( (binary_expression "param_1 + 0x1908" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    local_30d8._4_4_ = param_1 + 0x1108;\n    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }" { (expression_statement "local_30d8._4_4_ = param_1 + 0x1108;" (assignment_expression "local_30d8._4_4_ = param_1 + 0x1108" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (binary_expression "param_1 + 0x1108" identifier + number_literal)) ;) (expression_statement "local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);" (assignment_expression "local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac)" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x62ac)" ( (binary_expression "PTR_s_t_to_left_003a88e4 + -0x62ac" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" * (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5)" ( number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) , number_literal ))) ;) })) (if_statement "if (param_2 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" if (parenthesized_expression "(param_2 == (ushort *)0x0)" ( (binary_expression "param_2 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" { (expression_statement "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1cac" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) , number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (*(int *)(param_2 + 0xe) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0xe) != -0x54535255)" ( (binary_expression "*(int *)(param_2 + 0xe) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0xe)" * (cast_expression "(int *)(param_2 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xe)" ( (binary_expression "param_2 + 0xe" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" { (expression_statement "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (binary_expression "PTR_LAB_003a88e0 + 0x294c" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) , number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (expression_statement "puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2);" (assignment_expression "puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2)" identifier = (cast_expression "(ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2)" (parenthesized_expression "(*(code *)PTR_AcquireImage_003a960c)" ( (pointer_expression "*(code *)PTR_AcquireImage_003a960c" * (cast_expression "(code *)PTR_AcquireImage_003a960c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2)" ( identifier , identifier ))))) ;) (expression_statement "puVar38 = (ushort *)0x2;" (assignment_expression "puVar38 = (ushort *)0x2" identifier = (cast_expression "(ushort *)0x2" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar50 = puVar8;" (assignment_expression "puVar50 = puVar8" identifier = identifier) ;) (expression_statement "local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2);" (assignment_expression "local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2)" identifier = (call_expression "(*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2)" (parenthesized_expression "(*(code *)PTR_OpenBlob_003a924c)" ( (pointer_expression "*(code *)PTR_OpenBlob_003a924c" * (cast_expression "(code *)PTR_OpenBlob_003a924c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar8,2,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (local_309c == 0) {\n    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n    iVar10 = 0;\n  }\n  else {\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }" if (parenthesized_expression "(local_309c == 0)" ( (binary_expression "local_309c == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n    iVar10 = 0;\n  }" { (expression_statement "(*(code *)PTR_DestroyImageList_003a9510)(puVar8);" (call_expression "(*(code *)PTR_DestroyImageList_003a9510)(puVar8)" (parenthesized_expression "(*(code *)PTR_DestroyImageList_003a9510)" ( (pointer_expression "*(code *)PTR_DestroyImageList_003a9510" * (cast_expression "(code *)PTR_DestroyImageList_003a9510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }" else (compound_statement "{\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }" { (expression_statement "puVar38 = (ushort *)0xffa;" (assignment_expression "puVar38 = (ushort *)0xffa" identifier = (cast_expression "(ushort *)0xffa" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_3044,puVar8 + 0x1a0)" ( identifier , (binary_expression "puVar8 + 0x1a0" identifier + number_literal) ))) ;) (expression_statement "puVar50 = auStack_3044;" (assignment_expression "puVar50 = auStack_3044" identifier = identifier) ;) (expression_statement "(*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);" (call_expression "(*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8)" (parenthesized_expression "(*(code *)PTR_AppendImageFormat_003a8fa8)" ( (pointer_expression "*(code *)PTR_AppendImageFormat_003a8fa8" * (cast_expression "(code *)PTR_AppendImageFormat_003a8fa8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x50b8)" ( (binary_expression "PTR_s_courses_003a88ec + -0x50b8" identifier + number_literal) ))) ;) (expression_statement "unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (expression_statement "puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;) (expression_statement "puVar4 = PTR_LAB_003a88e0;" (assignment_expression "puVar4 = PTR_LAB_003a88e0" identifier = identifier) ;) (expression_statement "uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);" (assignment_expression "uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0)" identifier = (call_expression "CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0)" identifier (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0)" ( identifier , identifier )))) ;) (if_statement "if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }" if (parenthesized_expression "(unaff_s8 == (ushort *)0xffffffff)" ( (binary_expression "unaff_s8 == (ushort *)0xffffffff" identifier == (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }" { (expression_statement "(*(code *)PTR_DestroyImage_003a8f4c)(puVar8);" (call_expression "(*(code *)PTR_DestroyImage_003a8f4c)(puVar8)" (parenthesized_expression "(*(code *)PTR_DestroyImage_003a8f4c)" ( (pointer_expression "*(code *)PTR_DestroyImage_003a8f4c" * (cast_expression "(code *)PTR_DestroyImage_003a8f4c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "param_1 = auStack_3044;" (assignment_expression "param_1 = auStack_3044" identifier = identifier) ;) (expression_statement "uVar69 = CONCAT44(param_2,unaff_s3);" (assignment_expression "uVar69 = CONCAT44(param_2,unaff_s3)" identifier = (call_expression "CONCAT44(param_2,unaff_s3)" identifier (argument_list "(param_2,unaff_s3)" ( identifier , identifier )))) ;) }) (else_clause "else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }" else (compound_statement "{\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }" { (expression_statement "unaff_s5 = local_1044;" (assignment_expression "unaff_s5 = local_1044" identifier = identifier) ;) (expression_statement "puVar38 = (ushort *)0x1000;" (assignment_expression "puVar38 = (ushort *)0x1000" identifier = (cast_expression "(ushort *)0x1000" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2044[0] = 0;" (assignment_expression "local_2044[0] = 0" (subscript_expression "local_2044[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s4 = (ushort *)((int)unaff_s8 << 1);" (assignment_expression "unaff_s4 = (ushort *)((int)unaff_s8 << 1)" identifier = (cast_expression "(ushort *)((int)unaff_s8 << 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s8 << 1)" ( (binary_expression "(int)unaff_s8 << 1" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "(*(code *)PTR_memset_003a96d4)(unaff_s5,0);" (call_expression "(*(code *)PTR_memset_003a96d4)(unaff_s5,0)" (parenthesized_expression "(*(code *)PTR_memset_003a96d4)" ( (pointer_expression "*(code *)PTR_memset_003a96d4" * (cast_expression "(code *)PTR_memset_003a96d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5,0)" ( identifier , number_literal ))) ;) (expression_statement "local_3074 = 0;" (assignment_expression "local_3074 = 0" identifier = number_literal) ;) (expression_statement "local_3078 = 0;" (assignment_expression "local_3078 = 0" identifier = number_literal) ;) (expression_statement "puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();" (assignment_expression "puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)()" identifier = (cast_expression "(ushort *)(*(code *)PTR___ctype_b_loc_003a9434)()" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_003a9434)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_003a9434)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_003a9434" * (cast_expression "(code *)PTR___ctype_b_loc_003a9434" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "in_f24_25 = *(double *)(puVar5 + -0x5b00);" (assignment_expression "in_f24_25 = *(double *)(puVar5 + -0x5b00)" identifier = (pointer_expression "*(double *)(puVar5 + -0x5b00)" * (cast_expression "(double *)(puVar5 + -0x5b00)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x5b00)" ( (binary_expression "puVar5 + -0x5b00" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(puVar4 + 0x1418);" (assignment_expression "in_f22_23 = *(double *)(puVar4 + 0x1418)" identifier = (pointer_expression "*(double *)(puVar4 + 0x1418)" * (cast_expression "(double *)(puVar4 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x1418)" ( (binary_expression "puVar4 + 0x1418" identifier + number_literal) ))))) ;) (expression_statement "in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);" (assignment_expression "in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "unaff_s7 = local_3070;" (assignment_expression "unaff_s7 = local_3070" identifier = identifier) ;) (do_statement "do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);" do (compound_statement "{\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      }" { (expression_statement "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;" (assignment_expression "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c" identifier = identifier) ;) (expression_statement "(*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);" (call_expression "(*(code *)PTR_SetGeometryInfo_003a9970)(local_3070)" (parenthesized_expression "(*(code *)PTR_SetGeometryInfo_003a9970)" ( (pointer_expression "*(code *)PTR_SetGeometryInfo_003a9970" * (cast_expression "(code *)PTR_SetGeometryInfo_003a9970" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3070)" ( identifier ))) ;) (expression_statement "unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);" (assignment_expression "unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" identifier = (cast_expression "(ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireString_003a9814)(0)" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" ( (pointer_expression "*(code *)PTR_AcquireString_003a9814" * (cast_expression "(code *)PTR_AcquireString_003a9814" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);" (assignment_expression "iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0)" identifier = (call_expression "(*(code *)PTR_GetMagickSignature_003a96ec)(0)" (parenthesized_expression "(*(code *)PTR_GetMagickSignature_003a96ec)" ( (pointer_expression "*(code *)PTR_GetMagickSignature_003a96ec" * (cast_expression "(code *)PTR_GetMagickSignature_003a96ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "iVar30 = *(int *)puVar9;" (assignment_expression "iVar30 = *(int *)puVar9" identifier = (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar8[0x10] = 0;" (assignment_expression "puVar8[0x10] = 0" (subscript_expression "puVar8[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[0x11] = 8;" (assignment_expression "puVar8[0x11] = 8" (subscript_expression "puVar8[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar50 = (ushort *)(iVar30 + (int)unaff_s4);" (assignment_expression "puVar50 = (ushort *)(iVar30 + (int)unaff_s4)" identifier = (cast_expression "(ushort *)(iVar30 + (int)unaff_s4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + (int)unaff_s4)" ( (binary_expression "iVar30 + (int)unaff_s4" identifier + (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar8[4] = 0;" (assignment_expression "puVar8[4] = 0" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[5] = 0x10;" (assignment_expression "puVar8[5] = 0x10" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = *puVar50;" (assignment_expression "uVar2 = *puVar50" identifier = (pointer_expression "*puVar50" * identifier)) ;) (expression_statement "puVar11 = unaff_s8;" (assignment_expression "puVar11 = unaff_s8" identifier = identifier) ;) (labeled_statement "LAB_0025399c:\n        unaff_s4 = puVar50;" statement_identifier : (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" identifier = identifier) ;)) (if_statement "if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }" if (parenthesized_expression "((uVar2 & 0x80) != 0)" ( (binary_expression "(uVar2 & 0x80) != 0" (parenthesized_expression "(uVar2 & 0x80)" ( (binary_expression "uVar2 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }" { (do_statement "do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );" do (compound_statement "{\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          }" { (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" identifier = identifier) ;) (if_statement "if (puVar11 == (ushort *)&DAT_0000003a) break;" if (parenthesized_expression "(puVar11 == (ushort *)&DAT_0000003a)" ( (binary_expression "puVar11 == (ushort *)&DAT_0000003a" identifier == (cast_expression "(ushort *)&DAT_0000003a" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000003a" & identifier))) )) (break_statement "break;" break ;)) (if_statement "if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }" if (parenthesized_expression "(puVar11 == (ushort *)0x7b)" ( (binary_expression "puVar11 == (ushort *)0x7b" identifier == (cast_expression "(ushort *)0x7b" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }" { (expression_statement "puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" identifier = (cast_expression "(ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireString_003a9814)(0)" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" ( (pointer_expression "*(code *)PTR_AcquireString_003a9814" * (cast_expression "(code *)PTR_AcquireString_003a9814" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" identifier = identifier) ;) (if_statement "if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }" if (parenthesized_expression "(puVar11 == (ushort *)0x0)" ( (binary_expression "puVar11 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }" { (labeled_statement "LAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);" statement_identifier : (expression_statement "(*(code *)PTR_DestroyString_003a9074)(unaff_s6);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" ( (pointer_expression "*(code *)PTR_DestroyString_003a9074" * (cast_expression "(code *)PTR_DestroyString_003a9074" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier ))) ;)) (expression_statement "uVar48 = 0x10e;" (assignment_expression "uVar48 = 0x10e" identifier = number_literal) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_LAB_003a88e0 + 0x16f8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x16f8)" ( (binary_expression "PTR_LAB_003a88e0 + 0x16f8" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)0x190;" (assignment_expression "local_30d8._0_4_ = (ushort *)0x190" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)0x190" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "uVar13 = 0x1000;" (assignment_expression "uVar13 = 0x1000" identifier = number_literal) ;) (expression_statement "puVar50 = (ushort *)0x5c;" (assignment_expression "puVar50 = (ushort *)0x5c" identifier = (cast_expression "(ushort *)0x5c" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);" statement_identifier : (expression_statement "uVar69 = CONCAT44(puVar11,uVar13);" (assignment_expression "uVar69 = CONCAT44(puVar11,uVar13)" identifier = (call_expression "CONCAT44(puVar11,uVar13)" identifier (argument_list "(puVar11,uVar13)" ( identifier , identifier )))) ;)) (expression_statement "unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (if_statement "if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;" if (parenthesized_expression "(unaff_s7 == (ushort *)0x5c)" ( (binary_expression "unaff_s7 == (ushort *)0x5c" identifier == (cast_expression "(ushort *)0x5c" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00254578;" goto statement_identifier ;)) (while_statement "while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }" while (parenthesized_expression "((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d)))" ( (parenthesized_expression "(puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))" ( (comma_expression "puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d)" (assignment_expression "puVar7 = PTR_SetImageProperty_003a9534" identifier = identifier) , (binary_expression "unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d)" (binary_expression "unaff_s7 != (ushort *)0xffffffff" identifier != (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d)" ( (comma_expression "iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d" (assignment_expression "iVar30 = (int)unaff_s8 - (int)puVar11" identifier = (binary_expression "(int)unaff_s8 - (int)puVar11" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "unaff_s7 != (ushort *)0x7d" identifier != (cast_expression "(ushort *)0x7d" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) )) (compound_statement "{\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }" { (while_statement "while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }" { (expression_statement "puVar35 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar35 = PTR_ReadBlobByte_003a97f0" identifier = identifier) ;) (expression_statement "puVar7 = PTR_ResizeQuantumMemory_003a9420;" (assignment_expression "puVar7 = PTR_ResizeQuantumMemory_003a9420" identifier = identifier) ;) (if_statement "if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }" if (parenthesized_expression "(uVar13 <= iVar30 + 1U)" ( (binary_expression "uVar13 <= iVar30 + 1U" identifier <= (binary_expression "iVar30 + 1U" identifier + number_literal)) )) (compound_statement "{\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }" { (expression_statement "uVar13 = uVar13 * 2;" (assignment_expression "uVar13 = uVar13 * 2" identifier = (binary_expression "uVar13 * 2" identifier * number_literal)) ;) (expression_statement "*(byte *)unaff_s8 = 0;" (assignment_expression "*(byte *)unaff_s8 = 0" (pointer_expression "*(byte *)unaff_s8" * (cast_expression "(byte *)unaff_s8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);" (assignment_expression "puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1)" identifier = (cast_expression "(ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11,uVar13 + 0x1000,1)" ( identifier , (binary_expression "uVar13 + 0x1000" identifier + number_literal) , number_literal ))))) ;) (expression_statement "uVar69 = CONCAT44(puVar11,uVar13);" (assignment_expression "uVar69 = CONCAT44(puVar11,uVar13)" identifier = (call_expression "CONCAT44(puVar11,uVar13)" identifier (argument_list "(puVar11,uVar13)" ( identifier , identifier )))) ;) (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" identifier = identifier) ;) (if_statement "if (puVar11 == (ushort *)0x0) goto LAB_00254658;" if (parenthesized_expression "(puVar11 == (ushort *)0x0)" ( (binary_expression "puVar11 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00254658;" goto statement_identifier ;)) (expression_statement "iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);" (assignment_expression "iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11)" identifier = (call_expression "(*(code *)PTR_strlen_003a9338)(puVar11)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" ( (pointer_expression "*(code *)PTR_strlen_003a9338" * (cast_expression "(code *)PTR_strlen_003a9338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11)" ( identifier )))) ;) (expression_statement "unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);" (assignment_expression "unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1)" identifier = (cast_expression "(ushort *)((byte *)((int)puVar11 + iVar30) + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)((int)puVar11 + iVar30) + 1)" ( (binary_expression "(byte *)((int)puVar11 + iVar30) + 1" (cast_expression "(byte *)((int)puVar11 + iVar30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + iVar30)" ( (binary_expression "(int)puVar11 + iVar30" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) + number_literal) )))) ;) (expression_statement "*(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;" (assignment_expression "*(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7" (pointer_expression "*(byte *)((int)puVar11 + iVar30)" * (cast_expression "(byte *)((int)puVar11 + iVar30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + iVar30)" ( (binary_expression "(int)puVar11 + iVar30" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (cast_expression "(byte)unaff_s7" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_0025451c;" goto statement_identifier ;) })) (expression_statement "*(byte *)unaff_s8 = (byte)unaff_s7;" (assignment_expression "*(byte *)unaff_s8 = (byte)unaff_s7" (pointer_expression "*(byte *)unaff_s8" * (cast_expression "(byte *)unaff_s8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(byte)unaff_s7" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "unaff_s8 = (ushort *)((int)unaff_s8 + 1);" (assignment_expression "unaff_s8 = (ushort *)((int)unaff_s8 + 1)" identifier = (cast_expression "(ushort *)((int)unaff_s8 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s8 + 1)" ( (binary_expression "(int)unaff_s8 + 1" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);" (assignment_expression "unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)puVar35)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar35)(puVar8)" (parenthesized_expression "(*(code *)puVar35)" ( (pointer_expression "*(code *)puVar35" * (cast_expression "(code *)puVar35" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (if_statement "if (unaff_s7 != (ushort *)0x5c) break;" if (parenthesized_expression "(unaff_s7 != (ushort *)0x5c)" ( (binary_expression "unaff_s7 != (ushort *)0x5c" identifier != (cast_expression "(ushort *)0x5c" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" statement_identifier : (expression_statement "unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;)) (expression_statement "iVar30 = (int)unaff_s8 - (int)puVar11;" (assignment_expression "iVar30 = (int)unaff_s8 - (int)puVar11" identifier = (binary_expression "(int)unaff_s8 - (int)puVar11" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) })) (expression_statement "puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;" (assignment_expression "puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928" identifier = (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928" identifier + number_literal)) ;) (expression_statement "*(byte *)unaff_s8 = 0;" (assignment_expression "*(byte *)unaff_s8 = 0" (pointer_expression "*(byte *)unaff_s8" * (cast_expression "(byte *)unaff_s8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar38 = puVar11;" (assignment_expression "puVar38 = puVar11" identifier = identifier) ;) (expression_statement "(*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);" (call_expression "(*(code *)puVar7)(puVar8,puVar35,puVar11,param_2)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,puVar35,puVar11,param_2)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(puVar11);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(puVar11)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" ( (pointer_expression "*(code *)PTR_DestroyString_003a9074" * (cast_expression "(code *)PTR_DestroyString_003a9074" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11)" ( identifier ))) ;) (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) }) (else_clause "else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }" else (if_statement "if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }" if (parenthesized_expression "((uVar2 & 0x800) == 0)" ( (binary_expression "(uVar2 & 0x800) == 0" (parenthesized_expression "(uVar2 & 0x800)" ( (binary_expression "uVar2 & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }" { (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) }) (else_clause "else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }" else (compound_statement "{\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }" { (expression_statement "puVar50 = unaff_s5;" (assignment_expression "puVar50 = unaff_s5" identifier = identifier) ;) (if_statement "if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }" if (parenthesized_expression "(puVar11 == (ushort *)0x3d)" ( (binary_expression "puVar11 == (ushort *)0x3d" identifier == (cast_expression "(ushort *)0x3d" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar12 = 0x7a;\n              }" { (expression_statement "iVar12 = 0x7a;" (assignment_expression "iVar12 = 0x7a" identifier = number_literal) ;) }) (else_clause "else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }" else (compound_statement "{\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }" { (expression_statement "uVar69 = 0xffffffff0000003d;" (assignment_expression "uVar69 = 0xffffffff0000003d" identifier = number_literal) ;) (do_statement "do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);" do (compound_statement "{\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                }" { (if_statement "if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }" if (parenthesized_expression "((uint)((int)puVar50 - (int)unaff_s5) < 0xfff)" ( (binary_expression "(uint)((int)puVar50 - (int)unaff_s5) < 0xfff" (call_expression "(uint)((int)puVar50 - (int)unaff_s5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar50 - (int)unaff_s5)" ( (binary_expression "(int)puVar50 - (int)unaff_s5" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < number_literal) )) (compound_statement "{\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }" { (expression_statement "*(byte *)puVar50 = (byte)puVar11;" (assignment_expression "*(byte *)puVar50 = (byte)puVar11" (pointer_expression "*(byte *)puVar50" * (cast_expression "(byte *)puVar50" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(byte)puVar11" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "puVar50 = (ushort *)((int)puVar50 + 1);" (assignment_expression "puVar50 = (ushort *)((int)puVar50 + 1)" identifier = (cast_expression "(ushort *)((int)puVar50 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 1)" ( (binary_expression "(int)puVar50 + 1" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (if_statement "if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }" if (parenthesized_expression "(puVar11 == (ushort *)0xffffffff)" ( (binary_expression "puVar11 == (ushort *)0xffffffff" identifier == (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }" { (expression_statement "iVar30 = *(int *)puVar9;" (assignment_expression "iVar30 = *(int *)puVar9" identifier = (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar12 = -2;" (assignment_expression "iVar12 = -2" identifier = number_literal) ;) (expression_statement "uVar69 = 0xffffffff0000003d;" (assignment_expression "uVar69 = 0xffffffff0000003d" identifier = number_literal) ;) (goto_statement "goto LAB_00253a18;" goto statement_identifier ;) })) }) while (parenthesized_expression "(puVar11 != (ushort *)0x3d)" ( (binary_expression "puVar11 != (ushort *)0x3d" identifier != (cast_expression "(ushort *)0x3d" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "iVar30 = *(int *)puVar9;" (assignment_expression "iVar30 = *(int *)puVar9" identifier = (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar12 = 0x7a;" (assignment_expression "iVar12 = 0x7a" identifier = number_literal) ;) }))) (labeled_statement "LAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);" statement_identifier : (expression_statement "uVar13 = (uint)((ulonglong)uVar69 >> 0x20);" (assignment_expression "uVar13 = (uint)((ulonglong)uVar69 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar69 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar69 >> 0x20)" ( (binary_expression "(ulonglong)uVar69 >> 0x20" (cast_expression "(ulonglong)uVar69" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "uVar36 = (uint)uVar69;" (assignment_expression "uVar36 = (uint)uVar69" identifier = (cast_expression "(uint)uVar69" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(byte *)puVar50 = 0;" (assignment_expression "*(byte *)puVar50 = 0" (pointer_expression "*(byte *)puVar50" * (cast_expression "(byte *)puVar50" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar2 = *(ushort *)(iVar30 + iVar12);" (assignment_expression "uVar2 = *(ushort *)(iVar30 + iVar12)" identifier = (pointer_expression "*(ushort *)(iVar30 + iVar12)" * (cast_expression "(ushort *)(iVar30 + iVar12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + iVar12)" ( (binary_expression "iVar30 + iVar12" identifier + identifier) ))))) ;) (while_statement "while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }" while (parenthesized_expression "((uVar2 & 0x20) != 0)" ( (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }" { (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (expression_statement "uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);" (assignment_expression "uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2)" identifier = (pointer_expression "*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2)" * (cast_expression "(ushort *)(*(int *)puVar9 + (int)puVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar9 + (int)puVar11 * 2)" ( (binary_expression "*(int *)puVar9 + (int)puVar11 * 2" (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "(int)puVar11 * 2" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "unaff_s7 = unaff_s6;" (assignment_expression "unaff_s7 = unaff_s6" identifier = identifier) ;) (if_statement "if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }" if (parenthesized_expression "(puVar11 == (ushort *)0x3d)" ( (binary_expression "puVar11 == (ushort *)0x3d" identifier == (cast_expression "(ushort *)0x3d" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }" { (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (if_statement "if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }" if (parenthesized_expression "((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   )" ( (binary_expression "(puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)" (parenthesized_expression "(puVar11 == (ushort *)0x7d)" ( (binary_expression "puVar11 == (ushort *)0x7d" identifier == (cast_expression "(ushort *)0x7d" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)" ( (comma_expression "uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff" (assignment_expression "uVar13 = 0xfff" identifier = number_literal) , (binary_expression "puVar11 == (ushort *)0xffffffff" identifier == (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }" { (expression_statement "uVar69 = CONCAT44(uVar13,uVar36);" (assignment_expression "uVar69 = CONCAT44(uVar13,uVar36)" identifier = (call_expression "CONCAT44(uVar13,uVar36)" identifier (argument_list "(uVar13,uVar36)" ( identifier , identifier )))) ;) }) (else_clause "else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }" else (compound_statement "{\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }" { (expression_statement "uVar36 = 0x7d;" (assignment_expression "uVar36 = 0x7d" identifier = number_literal) ;) (do_statement "do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));" do (compound_statement "{\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  }" { (expression_statement "iVar30 = (int)unaff_s7 - (int)unaff_s6;" (assignment_expression "iVar30 = (int)unaff_s7 - (int)unaff_s6" identifier = (binary_expression "(int)unaff_s7 - (int)unaff_s6" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" identifier = identifier) ;) (while_statement "while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }" { (expression_statement "puVar50 = unaff_s7;" (assignment_expression "puVar50 = unaff_s7" identifier = identifier) ;) (expression_statement "puVar7 = PTR_ResizeQuantumMemory_003a9420;" (assignment_expression "puVar7 = PTR_ResizeQuantumMemory_003a9420" identifier = identifier) ;) (if_statement "if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }" if (parenthesized_expression "(uVar13 <= iVar30 + 1U)" ( (binary_expression "uVar13 <= iVar30 + 1U" identifier <= (binary_expression "iVar30 + 1U" identifier + number_literal)) )) (compound_statement "{\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }" { (expression_statement "uVar13 = uVar13 * 2;" (assignment_expression "uVar13 = uVar13 * 2" identifier = (binary_expression "uVar13 * 2" identifier * number_literal)) ;) (expression_statement "*(byte *)puVar50 = 0;" (assignment_expression "*(byte *)puVar50 = 0" (pointer_expression "*(byte *)puVar50" * (cast_expression "(byte *)puVar50" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);" (assignment_expression "unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1)" identifier = (cast_expression "(ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6,uVar13 + 0x1000,1)" ( identifier , (binary_expression "uVar13 + 0x1000" identifier + number_literal) , number_literal ))))) ;) (expression_statement "unaff_s7 = puVar50;" (assignment_expression "unaff_s7 = puVar50" identifier = identifier) ;) (if_statement "if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;" if (parenthesized_expression "(unaff_s6 == (ushort *)0x0)" ( (binary_expression "unaff_s6 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00254848;" goto statement_identifier ;)) (expression_statement "iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);" (assignment_expression "iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6)" identifier = (call_expression "(*(code *)PTR_strlen_003a9338)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" ( (pointer_expression "*(code *)PTR_strlen_003a9338" * (cast_expression "(code *)PTR_strlen_003a9338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier )))) ;) (expression_statement "puVar50 = (ushort *)((int)unaff_s6 + iVar30);" (assignment_expression "puVar50 = (ushort *)((int)unaff_s6 + iVar30)" identifier = (cast_expression "(ushort *)((int)unaff_s6 + iVar30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s6 + iVar30)" ( (binary_expression "(int)unaff_s6 + iVar30" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) })) (expression_statement "puVar7 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar7 = PTR_ReadBlobByte_003a97f0" identifier = identifier) ;) (expression_statement "uVar3 = CONCAT44(uVar13,0x7d);" (assignment_expression "uVar3 = CONCAT44(uVar13,0x7d)" identifier = (call_expression "CONCAT44(uVar13,0x7d)" identifier (argument_list "(uVar13,0x7d)" ( identifier , number_literal )))) ;) (expression_statement "uVar69 = CONCAT44(uVar13,0x7d);" (assignment_expression "uVar69 = CONCAT44(uVar13,0x7d)" identifier = (call_expression "CONCAT44(uVar13,0x7d)" identifier (argument_list "(uVar13,0x7d)" ( identifier , number_literal )))) ;) (expression_statement "*(byte *)puVar50 = (byte)puVar11;" (assignment_expression "*(byte *)puVar50 = (byte)puVar11" (pointer_expression "*(byte *)puVar50" * (cast_expression "(byte *)puVar50" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(byte)puVar11" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "unaff_s7 = (ushort *)((int)puVar50 + 1);" (assignment_expression "unaff_s7 = (ushort *)((int)puVar50 + 1)" identifier = (cast_expression "(ushort *)((int)puVar50 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 1)" ( (binary_expression "(int)puVar50 + 1" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar11 = (ushort *)(*(code *)puVar7)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)puVar7)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)puVar7)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar7)(puVar8)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (if_statement "if (puVar11 != (ushort *)0x5c) break;" if (parenthesized_expression "(puVar11 != (ushort *)0x5c)" ( (binary_expression "puVar11 != (ushort *)0x5c" identifier != (cast_expression "(ushort *)0x5c" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (expression_statement "puVar7 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar7 = PTR_ReadBlobByte_003a97f0" identifier = identifier) ;) (if_statement "if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }" if (parenthesized_expression "(puVar11 == (ushort *)0x7d)" ( (binary_expression "puVar11 == (ushort *)0x7d" identifier == (cast_expression "(ushort *)0x7d" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }" { (expression_statement "*(byte *)((int)puVar50 + 1) = 0x7d;" (assignment_expression "*(byte *)((int)puVar50 + 1) = 0x7d" (pointer_expression "*(byte *)((int)puVar50 + 1)" * (cast_expression "(byte *)((int)puVar50 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 1)" ( (binary_expression "(int)puVar50 + 1" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "unaff_s7 = puVar50 + 1;" (assignment_expression "unaff_s7 = puVar50 + 1" identifier = (binary_expression "puVar50 + 1" identifier + number_literal)) ;) (expression_statement "puVar11 = (ushort *)(*(code *)puVar7)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)puVar7)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)puVar7)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar7)(puVar8)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (break_statement "break;" break ;) })) (if_statement "if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;" if (parenthesized_expression "(*(byte *)unaff_s6 != 0x7b)" ( (binary_expression "*(byte *)unaff_s6 != 0x7b" (pointer_expression "*(byte *)unaff_s6" * (cast_expression "(byte *)unaff_s6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (goto_statement "goto LAB_002547c4;" goto statement_identifier ;)) (expression_statement "iVar30 = (int)unaff_s7 - (int)unaff_s6;" (assignment_expression "iVar30 = (int)unaff_s7 - (int)unaff_s6" identifier = (binary_expression "(int)unaff_s7 - (int)unaff_s6" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" identifier = identifier) ;) (expression_statement "uVar69 = uVar3;" (assignment_expression "uVar69 = uVar3" identifier = identifier) ;) (if_statement "if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;" if (parenthesized_expression "(puVar11 == (ushort *)0xffffffff)" ( (binary_expression "puVar11 == (ushort *)0xffffffff" identifier == (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto joined_r0x00254fe4;" goto statement_identifier ;)) })) (if_statement "if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;" if (parenthesized_expression "(*(byte *)unaff_s6 == 0x7b)" ( (binary_expression "*(byte *)unaff_s6 == 0x7b" (pointer_expression "*(byte *)unaff_s6" * (cast_expression "(byte *)unaff_s6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (goto_statement "goto LAB_002547e0;" goto statement_identifier ;)) (labeled_statement "LAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;" statement_identifier : (if_statement "if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;" if (parenthesized_expression "((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)" ( (binary_expression "(*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20)" ( (binary_expression "*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20" (pointer_expression "*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2)" * (cast_expression "(ushort *)(*(int *)puVar9 + (int)puVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar9 + (int)puVar11 * 2)" ( (binary_expression "*(int *)puVar9 + (int)puVar11 * 2" (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "(int)puVar11 * 2" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00253a68;" goto statement_identifier ;))) (labeled_statement "LAB_002547e0:\n                    uVar69 = uVar3;" statement_identifier : (expression_statement "uVar69 = uVar3;" (assignment_expression "uVar69 = uVar3" identifier = identifier) ;)) }) while (parenthesized_expression "((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff))" ( (binary_expression "(puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff)" (parenthesized_expression "(puVar11 != (ushort *)0x7d)" ( (binary_expression "puVar11 != (ushort *)0x7d" identifier != (cast_expression "(ushort *)0x7d" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar11 != (ushort *)0xffffffff)" ( (binary_expression "puVar11 != (ushort *)0xffffffff" identifier != (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ;) }))) (labeled_statement "joined_r0x00254fe4:\n                unaff_s4 = puVar50;" statement_identifier : (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" identifier = identifier) ;)) (if_statement "if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }" if (parenthesized_expression "(unaff_s6 == (ushort *)0x0)" ( (binary_expression "unaff_s6 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }" { (labeled_statement "LAB_00254848:\n                  uVar48 = 0x14c;" statement_identifier : (expression_statement "uVar48 = 0x14c;" (assignment_expression "uVar48 = 0x14c" identifier = number_literal) ;)) (goto_statement "goto LAB_00254850;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00253a68:\n              *(byte *)unaff_s7 = 0;" statement_identifier : (expression_statement "*(byte *)unaff_s7 = 0;" (assignment_expression "*(byte *)unaff_s7 = 0" (pointer_expression "*(byte *)unaff_s7" * (cast_expression "(byte *)unaff_s7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;)) (if_statement "if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }" if (parenthesized_expression "(*(byte *)unaff_s6 == 0x7b)" ( (binary_expression "*(byte *)unaff_s6 == 0x7b" (pointer_expression "*(byte *)unaff_s6" * (cast_expression "(byte *)unaff_s6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }" { (expression_statement "uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);" (assignment_expression "uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6)" identifier = (call_expression "(*(code *)PTR_strlen_003a9338)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" ( (pointer_expression "*(code *)PTR_strlen_003a9338" * (cast_expression "(code *)PTR_strlen_003a9338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48)" ( identifier , (cast_expression "(byte *)((int)unaff_s6 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s6 + 1)" ( (binary_expression "(int)unaff_s6 + 1" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , identifier ))) ;) })) (expression_statement "uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;" (assignment_expression "uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff" identifier = (binary_expression "local_1044[0]._0_1_ - 0x41 & 0xff" (binary_expression "local_1044[0]._0_1_ - 0x41" (field_expression "local_1044[0]._0_1_" (subscript_expression "local_1044[0]" identifier [ number_literal ]) . field_identifier) - number_literal) & number_literal)) ;) (if_statement "if (uVar13 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }" if (parenthesized_expression "(uVar13 < 0x37)" ( (binary_expression "uVar13 < 0x37" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }" { comment comment (expression_statement "iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();" (assignment_expression "iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380))" ( (binary_expression "&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar6 + uVar13 * 4 + -0x7380)" * (cast_expression "(int *)(puVar6 + uVar13 * 4 + -0x7380)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + uVar13 * 4 + -0x7380)" ( (binary_expression "puVar6 + uVar13 * 4 + -0x7380" (binary_expression "puVar6 + uVar13 * 4" identifier + (binary_expression "uVar13 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar10;" return identifier ;) })) (expression_statement "puVar38 = unaff_s6;" (assignment_expression "puVar38 = unaff_s6" identifier = identifier) ;) (expression_statement "(*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);" (call_expression "(*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2)" (parenthesized_expression "(*(code *)PTR_SetImageProperty_003a9534)" ( (pointer_expression "*(code *)PTR_SetImageProperty_003a9534" * (cast_expression "(code *)PTR_SetImageProperty_003a9534" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,unaff_s5,unaff_s6,param_2)" ( identifier , identifier , identifier , identifier ))) ;) }))))) (expression_statement "iVar30 = *(int *)puVar9;" (assignment_expression "iVar30 = *(int *)puVar9" identifier = (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2)" identifier = (pointer_expression "*(ushort *)(iVar30 + (int)puVar11 * 2)" * (cast_expression "(ushort *)(iVar30 + (int)puVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + (int)puVar11 * 2)" ( (binary_expression "iVar30 + (int)puVar11 * 2" identifier + (binary_expression "(int)puVar11 * 2" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if ((uVar2 & 0x20) == 0) goto LAB_0025399c;" if (parenthesized_expression "((uVar2 & 0x20) == 0)" ( (binary_expression "(uVar2 & 0x20) == 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0025399c;" goto statement_identifier ;)) (do_statement "do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);" do (compound_statement "{\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            }" { (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (expression_statement "iVar30 = *(int *)puVar9;" (assignment_expression "iVar30 = *(int *)puVar9" identifier = (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2)" identifier = (pointer_expression "*(ushort *)(iVar30 + (int)puVar11 * 2)" * (cast_expression "(ushort *)(iVar30 + (int)puVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + (int)puVar11 * 2)" ( (binary_expression "iVar30 + (int)puVar11 * 2" identifier + (binary_expression "(int)puVar11 * 2" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) }) while (parenthesized_expression "((uVar2 & 0x20) != 0)" ( (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) != number_literal) )) ;) (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" identifier = identifier) ;) (if_statement "if ((uVar2 & 0x80) == 0) break;" if (parenthesized_expression "((uVar2 & 0x80) == 0)" ( (binary_expression "(uVar2 & 0x80) == 0" (parenthesized_expression "(uVar2 & 0x80)" ( (binary_expression "uVar2 & 0x80" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(unaff_s6);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" ( (pointer_expression "*(code *)PTR_DestroyString_003a9074" * (cast_expression "(code *)PTR_DestroyString_003a9074" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);" (assignment_expression "iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474)" identifier = (call_expression "(*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474)" (parenthesized_expression "(*(code *)PTR_LocaleCompare_003a9110)" ( (pointer_expression "*(code *)PTR_LocaleCompare_003a9110" * (cast_expression "(code *)PTR_LocaleCompare_003a9110" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474)" ( identifier , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474" identifier + number_literal) )))) ;) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" identifier = identifier) ;) (if_statement "if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }" if (parenthesized_expression "((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U))" ( (binary_expression "(((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)" (parenthesized_expression "(((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162)))))))" ( (binary_expression "((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))" (parenthesized_expression "((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0))))" ( (binary_expression "(((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))" (parenthesized_expression "(((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0))" ( (binary_expression "((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)" (parenthesized_expression "((iVar30 != 0) || (*(int *)puVar8 == 0))" ( (binary_expression "(iVar30 != 0) || (*(int *)puVar8 == 0)" (parenthesized_expression "(iVar30 != 0)" ( (binary_expression "iVar30 != 0" identifier != number_literal) )) || (parenthesized_expression "(*(int *)puVar8 == 0)" ( (binary_expression "*(int *)puVar8 == 0" (pointer_expression "*(int *)puVar8" * (cast_expression "(int *)puVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) ))) )) || (parenthesized_expression "(*(int *)(puVar8 + 4) == 0)" ( (binary_expression "*(int *)(puVar8 + 4) == 0" (pointer_expression "*(int *)(puVar8 + 4)" * (cast_expression "(int *)(puVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) == number_literal) ))) )) || (parenthesized_expression "((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))" ( (parenthesized_expression "(*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0))" ( (binary_expression "*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)" (binary_expression "*(int *)(puVar8 + 0xc) == 0" (pointer_expression "*(int *)(puVar8 + 0xc)" * (cast_expression "(int *)(puVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xc)" ( (binary_expression "puVar8 + 0xc" identifier + number_literal) )))) == number_literal) || (parenthesized_expression "(*(int *)(puVar8 + 0xe) == 0)" ( (binary_expression "*(int *)(puVar8 + 0xe) == 0" (pointer_expression "*(int *)(puVar8 + 0xe)" * (cast_expression "(int *)(puVar8 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xe)" ( (binary_expression "puVar8 + 0xe" identifier + number_literal) )))) == number_literal) ))) )) ))) )) || (parenthesized_expression "((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))" ( (parenthesized_expression "(0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162)))))" ( (binary_expression "0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))" (binary_expression "0x40 < *(uint *)(puVar8 + 0x160)" number_literal < (pointer_expression "*(uint *)(puVar8 + 0x160)" * (cast_expression "(uint *)(puVar8 + 0x160)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x160)" ( (binary_expression "puVar8 + 0x160" identifier + number_literal) ))))) || (parenthesized_expression "((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))" ( (parenthesized_expression "(0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162)))" ( (binary_expression "0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))" (binary_expression "0x38 < *(uint *)(puVar8 + 0x162)" number_literal < (pointer_expression "*(uint *)(puVar8 + 0x162)" * (cast_expression "(uint *)(puVar8 + 0x162)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x162)" ( (binary_expression "puVar8 + 0x162" identifier + number_literal) ))))) || (parenthesized_expression "(0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))" ( (binary_expression "0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162)" number_literal < (binary_expression "*(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162)" (pointer_expression "*(uint *)(puVar8 + 0x160)" * (cast_expression "(uint *)(puVar8 + 0x160)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x160)" ( (binary_expression "puVar8 + 0x160" identifier + number_literal) )))) + (pointer_expression "*(uint *)(puVar8 + 0x162)" * (cast_expression "(uint *)(puVar8 + 0x162)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x162)" ( (binary_expression "puVar8 + 0x162" identifier + number_literal) )))))) ))) )) ))) )) ))) )) || (parenthesized_expression "(0x3f < *(int *)(puVar8 + 0x10) - 1U)" ( (binary_expression "0x3f < *(int *)(puVar8 + 0x10) - 1U" number_literal < (binary_expression "*(int *)(puVar8 + 0x10) - 1U" (pointer_expression "*(int *)(puVar8 + 0x10)" * (cast_expression "(int *)(puVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x10)" ( (binary_expression "puVar8 + 0x10" identifier + number_literal) )))) - number_literal)) ))) )) (compound_statement "{\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }" { (expression_statement "uVar48 = 0x31d;" (assignment_expression "uVar48 = 0x31d" identifier = number_literal) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_courses_003a88ec + -400)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -400)" ( (binary_expression "PTR_s_courses_003a88ec + -400" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001a9" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (labeled_statement "LAB_002546ac:\n          local_30cc = param_1 + 0x1108;" statement_identifier : (expression_statement "local_30cc = param_1 + 0x1108;" (assignment_expression "local_30cc = param_1 + 0x1108" identifier = (binary_expression "param_1 + 0x1108" identifier + number_literal)) ;)) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,puVar50,puVar38,uVar48)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(puVar8);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(puVar8)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" ( (pointer_expression "*(code *)PTR_CloseBlob_003a9688" * (cast_expression "(code *)PTR_CloseBlob_003a9688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_DestroyImageList_003a9510)(puVar8);" (call_expression "(*(code *)PTR_DestroyImageList_003a9510)(puVar8)" (parenthesized_expression "(*(code *)PTR_DestroyImageList_003a9510)" ( (pointer_expression "*(code *)PTR_DestroyImageList_003a9510" * (cast_expression "(code *)PTR_DestroyImageList_003a9510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "param_1 = puVar9;" (assignment_expression "param_1 = puVar9" identifier = identifier) ;) (goto_statement "goto LAB_002546dc;" goto statement_identifier ;) })) (expression_statement "iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);" (assignment_expression "iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0)" identifier = (call_expression "(*(code *)PTR_GetMagickSignature_003a96ec)(0)" (parenthesized_expression "(*(code *)PTR_GetMagickSignature_003a96ec)" ( (pointer_expression "*(code *)PTR_GetMagickSignature_003a96ec" * (cast_expression "(code *)PTR_GetMagickSignature_003a96ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal )))) ;) (if_statement "if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }" if (parenthesized_expression "(iVar10 != iVar30)" ( (binary_expression "iVar10 != iVar30" identifier != identifier) )) (compound_statement "{\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }" { (expression_statement "uVar48 = 0x323;" (assignment_expression "uVar48 = 0x323" identifier = number_literal) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001bd;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001bd" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001bd" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001bd" & identifier))) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (if_statement "if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }" if (parenthesized_expression "(*(int *)(puVar8 + 0x102) != 0)" ( (binary_expression "*(int *)(puVar8 + 0x102) != 0" (pointer_expression "*(int *)(puVar8 + 0x102)" * (cast_expression "(int *)(puVar8 + 0x102)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x102)" ( (binary_expression "puVar8 + 0x102" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }" { (expression_statement "unaff_s6 = (ushort *)0x0;" (assignment_expression "unaff_s6 = (ushort *)0x0" identifier = (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar14 = (ushort *)0x1000;" (assignment_expression "puVar14 = (ushort *)0x1000" identifier = (cast_expression "(ushort *)0x1000" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);" (assignment_expression "puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" identifier = (cast_expression "(ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireString_003a9814)(0)" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" ( (pointer_expression "*(code *)PTR_AcquireString_003a9814" * (cast_expression "(code *)PTR_AcquireString_003a9814" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "*(ushort **)(puVar8 + 0x104) = puVar50;" (assignment_expression "*(ushort **)(puVar8 + 0x104) = puVar50" (pointer_expression "*(ushort **)(puVar8 + 0x104)" * (cast_expression "(ushort **)(puVar8 + 0x104)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x104)" ( (binary_expression "puVar8 + 0x104" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);" do (compound_statement "{\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          }" { (expression_statement "*(byte *)puVar50 = 0;" (assignment_expression "*(byte *)puVar50 = 0" (pointer_expression "*(byte *)puVar50" * (cast_expression "(byte *)puVar50" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar16 = puVar50;" (assignment_expression "puVar16 = puVar50" identifier = identifier) ;) (if_statement "if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }" if (parenthesized_expression "(puVar14 <= unaff_s6 + 0x800)" ( (binary_expression "puVar14 <= unaff_s6 + 0x800" identifier <= (binary_expression "unaff_s6 + 0x800" identifier + number_literal)) )) (compound_statement "{\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }" { (expression_statement "puVar14 = (ushort *)((int)puVar14 * 2);" (assignment_expression "puVar14 = (ushort *)((int)puVar14 * 2)" identifier = (cast_expression "(ushort *)((int)puVar14 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 * 2)" ( (binary_expression "(int)puVar14 * 2" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "uVar69 = CONCAT44(puVar14,0xffffffff);" (assignment_expression "uVar69 = CONCAT44(puVar14,0xffffffff)" identifier = (call_expression "CONCAT44(puVar14,0xffffffff)" identifier (argument_list "(puVar14,0xffffffff)" ( identifier , number_literal )))) ;) (expression_statement "puVar38 = (ushort *)0x1;" (assignment_expression "puVar38 = (ushort *)0x1" identifier = (cast_expression "(ushort *)0x1" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);" (assignment_expression "iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800)" identifier = (call_expression "(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800)" (parenthesized_expression "(*(code *)PTR_ResizeQuantumMemory_003a9420)" ( (pointer_expression "*(code *)PTR_ResizeQuantumMemory_003a9420" * (cast_expression "(code *)PTR_ResizeQuantumMemory_003a9420" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800)" ( (pointer_expression "*(undefined4 *)(puVar8 + 0x104)" * (cast_expression "(undefined4 *)(puVar8 + 0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x104)" ( (binary_expression "puVar8 + 0x104" identifier + number_literal) )))) , (binary_expression "puVar14 + 0x800" identifier + number_literal) )))) ;) (expression_statement "*(int *)(puVar8 + 0x104) = iVar10;" (assignment_expression "*(int *)(puVar8 + 0x104) = iVar10" (pointer_expression "*(int *)(puVar8 + 0x104)" * (cast_expression "(int *)(puVar8 + 0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x104)" ( (binary_expression "puVar8 + 0x104" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }" { (expression_statement "uVar48 = 0x341;" (assignment_expression "uVar48 = 0x341" identifier = number_literal) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);" (assignment_expression "local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001a9" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "puVar16 = (ushort *)(iVar10 + (int)unaff_s6);" (assignment_expression "puVar16 = (ushort *)(iVar10 + (int)unaff_s6)" identifier = (cast_expression "(ushort *)(iVar10 + (int)unaff_s6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + (int)unaff_s6)" ( (binary_expression "iVar10 + (int)unaff_s6" identifier + (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;) (expression_statement "uVar69 = CONCAT44(puVar14,0xffffffff);" (assignment_expression "uVar69 = CONCAT44(puVar14,0xffffffff)" identifier = (call_expression "CONCAT44(puVar14,0xffffffff)" identifier (argument_list "(puVar14,0xffffffff)" ( identifier , number_literal )))) ;) (if_statement "if (iVar10 == -1) break;" if (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar50 = (ushort *)((int)puVar16 + 1);" (assignment_expression "puVar50 = (ushort *)((int)puVar16 + 1)" identifier = (cast_expression "(ushort *)((int)puVar16 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + 1)" ( (binary_expression "(int)puVar16 + 1" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(byte *)puVar16 = (byte)iVar10;" (assignment_expression "*(byte *)puVar16 = (byte)iVar10" (pointer_expression "*(byte *)puVar16" * (cast_expression "(byte *)puVar16" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(byte)iVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "unaff_s6 = (ushort *)((int)unaff_s6 + 1);" (assignment_expression "unaff_s6 = (ushort *)((int)unaff_s6 + 1)" identifier = (cast_expression "(ushort *)((int)unaff_s6 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s6 + 1)" ( (binary_expression "(int)unaff_s6 + 1" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s4 = puVar16;" (assignment_expression "unaff_s4 = puVar16" identifier = identifier) ;) (expression_statement "uVar69 = CONCAT44(puVar14,0xffffffff);" (assignment_expression "uVar69 = CONCAT44(puVar14,0xffffffff)" identifier = (call_expression "CONCAT44(puVar14,0xffffffff)" identifier (argument_list "(puVar14,0xffffffff)" ( identifier , number_literal )))) ;) }) while (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) ;) })) (expression_statement "puVar50 = (ushort *)0x0;" (assignment_expression "puVar50 = (ushort *)0x0" identifier = (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);" (assignment_expression "unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8)" (parenthesized_expression "(*(code *)PTR_GetImageQuantumDepth_003a91e8)" ( (pointer_expression "*(code *)PTR_GetImageQuantumDepth_003a91e8" * (cast_expression "(code *)PTR_GetImageQuantumDepth_003a91e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (if_statement "if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }" if (parenthesized_expression "(*(int *)puVar8 == 2)" ( (binary_expression "*(int *)puVar8 == 2" (pointer_expression "*(int *)puVar8" * (cast_expression "(int *)puVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }" { (expression_statement "iVar10 = *(int *)(puVar8 + 0x12);" (assignment_expression "iVar10 = *(int *)(puVar8 + 0x12)" identifier = (pointer_expression "*(int *)(puVar8 + 0x12)" * (cast_expression "(int *)(puVar8 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x12)" ( (binary_expression "puVar8 + 0x12" identifier + number_literal) ))))) ;) (expression_statement "uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);" (assignment_expression "uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8)" identifier = (call_expression "(*(code *)PTR_GetBlobSize_003a94b8)(puVar8)" (parenthesized_expression "(*(code *)PTR_GetBlobSize_003a94b8)" ( (pointer_expression "*(code *)PTR_GetBlobSize_003a94b8" * (cast_expression "(code *)PTR_GetBlobSize_003a94b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;) (expression_statement "uVar13 = (uint)((int)unaff_s4 * 3) >> 3;" (assignment_expression "uVar13 = (uint)((int)unaff_s4 * 3) >> 3" identifier = (binary_expression "(uint)((int)unaff_s4 * 3) >> 3" (call_expression "(uint)((int)unaff_s4 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)unaff_s4 * 3)" ( (binary_expression "(int)unaff_s4 * 3" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal)) ;) (expression_statement "uVar36 = uVar13 * iVar10;" (assignment_expression "uVar36 = uVar13 * iVar10" identifier = (binary_expression "uVar13 * iVar10" identifier * identifier)) ;) (if_statement "if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }" if (parenthesized_expression "((int)((ulonglong)uVar69 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar69 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar69 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar69 >> 0x20)" ( (binary_expression "(ulonglong)uVar69 >> 0x20" (cast_expression "(ulonglong)uVar69" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }" { (expression_statement "uVar36 = (uint)((uint)uVar69 < uVar36);" (assignment_expression "uVar36 = (uint)((uint)uVar69 < uVar36)" identifier = (call_expression "(uint)((uint)uVar69 < uVar36)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar69 < uVar36)" ( (binary_expression "(uint)uVar69 < uVar36" (cast_expression "(uint)uVar69" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) ;) (expression_statement "uVar69 = CONCAT44(uVar13,uVar36);" (assignment_expression "uVar69 = CONCAT44(uVar13,uVar36)" identifier = (call_expression "CONCAT44(uVar13,uVar36)" identifier (argument_list "(uVar13,uVar36)" ( identifier , identifier )))) ;) (if_statement "if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" if (parenthesized_expression "(uVar36 != 0)" ( (binary_expression "uVar36 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" { (expression_statement "uVar48 = 0x37d;" (assignment_expression "uVar48 = 0x37d" identifier = number_literal) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_courses_003a88ec + 0x4a0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + 0x4a0)" ( (binary_expression "PTR_s_courses_003a88ec + 0x4a0" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001a9" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) })) (expression_statement "puVar50 = (ushort *)0x58;" (assignment_expression "puVar50 = (ushort *)0x58" identifier = (cast_expression "(ushort *)0x58" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);" (assignment_expression "iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1)" identifier = (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(puVar8 + 0x12) + 1)" ( (binary_expression "*(int *)(puVar8 + 0x12) + 1" (pointer_expression "*(int *)(puVar8 + 0x12)" * (cast_expression "(int *)(puVar8 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x12)" ( (binary_expression "puVar8 + 0x12" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*(int *)(puVar8 + 0x14) = iVar10;" (assignment_expression "*(int *)(puVar8 + 0x14) = iVar10" (pointer_expression "*(int *)(puVar8 + 0x14)" * (cast_expression "(int *)(puVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x14)" ( (binary_expression "puVar8 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }" { (expression_statement "uVar48 = 0x381;" (assignment_expression "uVar48 = 0x381" identifier = number_literal) ;) (labeled_statement "LAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);" statement_identifier : (expression_statement "uVar69 = CONCAT44(uVar13,uVar36);" (assignment_expression "uVar69 = CONCAT44(uVar13,uVar36)" identifier = (call_expression "CONCAT44(uVar13,uVar36)" identifier (argument_list "(uVar13,uVar36)" ( identifier , identifier )))) ;)) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_LAB_003a88e0 + 0x16f8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x16f8)" ( (binary_expression "PTR_LAB_003a88e0 + 0x16f8" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)0x190;" (assignment_expression "local_30d8._0_4_ = (ushort *)0x190" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)0x190" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" identifier = identifier) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "uVar69 = CONCAT44(uVar13,uVar36);" (assignment_expression "uVar69 = CONCAT44(uVar13,uVar36)" identifier = (call_expression "CONCAT44(uVar13,uVar36)" identifier (argument_list "(uVar13,uVar36)" ( identifier , identifier )))) ;) (if_statement "if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }" if (parenthesized_expression "(*(int *)(puVar8 + 0x12) != 0)" ( (binary_expression "*(int *)(puVar8 + 0x12) != 0" (pointer_expression "*(int *)(puVar8 + 0x12)" * (cast_expression "(int *)(puVar8 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x12)" ( (binary_expression "puVar8 + 0x12" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }" { (expression_statement "puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);" (assignment_expression "puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13)" identifier = (cast_expression "(ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(puVar8 + 0x12),uVar13)" ( (pointer_expression "*(int *)(puVar8 + 0x12)" * (cast_expression "(int *)(puVar8 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x12)" ( (binary_expression "puVar8 + 0x12" identifier + number_literal) )))) , identifier ))))) ;) (if_statement "if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }" if (parenthesized_expression "(puVar14 == (ushort *)0x0)" ( (binary_expression "puVar14 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }" { (expression_statement "uVar48 = 0x38a;" (assignment_expression "uVar48 = 0x38a" identifier = number_literal) ;) (expression_statement "uVar36 = 0;" (assignment_expression "uVar36 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00254850;" goto statement_identifier ;) })) (expression_statement "puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));" (assignment_expression "puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12))" identifier = (cast_expression "(ushort *)(uVar13 * *(int *)(puVar8 + 0x12))" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar13 * *(int *)(puVar8 + 0x12))" ( (binary_expression "uVar13 * *(int *)(puVar8 + 0x12)" identifier * (pointer_expression "*(int *)(puVar8 + 0x12)" * (cast_expression "(int *)(puVar8 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x12)" ( (binary_expression "puVar8 + 0x12" identifier + number_literal) ))))) )))) ;) (expression_statement "puVar38 = puVar14;" (assignment_expression "puVar38 = puVar14" identifier = identifier) ;) (expression_statement "iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8)" identifier = (call_expression "(*(code *)PTR_ReadBlob_003a8dac)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlob_003a8dac)" ( (pointer_expression "*(code *)PTR_ReadBlob_003a8dac" * (cast_expression "(code *)PTR_ReadBlob_003a8dac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;) (expression_statement "iVar30 = *(int *)(puVar8 + 0x12);" (assignment_expression "iVar30 = *(int *)(puVar8 + 0x12)" identifier = (pointer_expression "*(int *)(puVar8 + 0x12)" * (cast_expression "(int *)(puVar8 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x12)" ( (binary_expression "puVar8 + 0x12" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar30 * uVar13;" (assignment_expression "iVar12 = iVar30 * uVar13" identifier = (binary_expression "iVar30 * uVar13" identifier * identifier)) ;) (expression_statement "uVar69 = CONCAT44(iVar12,puVar14);" (assignment_expression "uVar69 = CONCAT44(iVar12,puVar14)" identifier = (call_expression "CONCAT44(iVar12,puVar14)" identifier (argument_list "(iVar12,puVar14)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" if (parenthesized_expression "(iVar12 != iVar10)" ( (binary_expression "iVar12 != iVar10" identifier != identifier) )) (compound_statement "{\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" { (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar14)" ( identifier ))) ;) (expression_statement "uVar48 = 0x390;" (assignment_expression "uVar48 = 0x390" identifier = number_literal) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_courses_003a88ec + 0x4a0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + 0x4a0)" ( (binary_expression "PTR_s_courses_003a88ec + 0x4a0" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001a9" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (if_statement "if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }" if (parenthesized_expression "(unaff_s4 == (ushort *)0x10)" ( (binary_expression "unaff_s4 == (ushort *)0x10" identifier == (cast_expression "(ushort *)0x10" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }" { (if_statement "if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }" if (parenthesized_expression "(0 < iVar30)" ( (binary_expression "0 < iVar30" number_literal < identifier) )) (compound_statement "{\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }" { (expression_statement "puVar16 = puVar14;" (assignment_expression "puVar16 = puVar14" identifier = identifier) ;) (expression_statement "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);" (assignment_expression "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28)" identifier = (cast_expression "(double *)(*(int *)(puVar8 + 0x14) + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x14) + 0x28)" ( (binary_expression "*(int *)(puVar8 + 0x14) + 0x28" (pointer_expression "*(int *)(puVar8 + 0x14)" * (cast_expression "(int *)(puVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x14)" ( (binary_expression "puVar8 + 0x14" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);" do (compound_statement "{\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                }" { (expression_statement "puVar33 = puVar16 + 3;" (assignment_expression "puVar33 = puVar16 + 3" identifier = (binary_expression "puVar16 + 3" identifier + number_literal)) ;) (expression_statement "*pdVar15 = (double)*puVar16;" (assignment_expression "*pdVar15 = (double)*puVar16" (pointer_expression "*pdVar15" * identifier) = (cast_expression "(double)*puVar16" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*puVar16" * identifier))) ;) (expression_statement "pdVar15[1] = (double)puVar16[1];" (assignment_expression "pdVar15[1] = (double)puVar16[1]" (subscript_expression "pdVar15[1]" identifier [ number_literal ]) = (cast_expression "(double)puVar16[1]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "puVar16[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);" (assignment_expression "puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8)" identifier = (cast_expression "(ushort *)((uint)*(byte *)(puVar16 + 2) << 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*(byte *)(puVar16 + 2) << 8)" ( (binary_expression "(uint)*(byte *)(puVar16 + 2) << 8" (binary_expression "(uint)*(byte *)(puVar16 + 2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(puVar16 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 2)" ( (binary_expression "puVar16 + 2" identifier + number_literal) )))) << number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(uint)puVar16[2];" (assignment_expression "puVar50 = (ushort *)(uint)puVar16[2]" identifier = (cast_expression "(ushort *)(uint)puVar16[2]" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)puVar16[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar16[2]" identifier [ number_literal ])))) ;) (expression_statement "pdVar15[2] = (double)(int)puVar50;" (assignment_expression "pdVar15[2] = (double)(int)puVar50" (subscript_expression "pdVar15[2]" identifier [ number_literal ]) = (cast_expression "(double)(int)puVar50" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar16 = puVar33;" (assignment_expression "puVar16 = puVar33" identifier = identifier) ;) (expression_statement "pdVar15 = pdVar15 + 0xb;" (assignment_expression "pdVar15 = pdVar15 + 0xb" identifier = (binary_expression "pdVar15 + 0xb" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar33 != puVar14 + iVar30 * 3)" ( (binary_expression "puVar33 != puVar14 + iVar30 * 3" identifier != (binary_expression "puVar14 + iVar30 * 3" identifier + (binary_expression "iVar30 * 3" identifier * number_literal))) )) ;) })) }) (else_clause "else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }" else (if_statement "if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }" if (parenthesized_expression "(unaff_s4 == (ushort *)0x20)" ( (binary_expression "unaff_s4 == (ushort *)0x20" identifier == (cast_expression "(ushort *)0x20" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }" { (if_statement "if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }" if (parenthesized_expression "(0 < iVar30)" ( (binary_expression "0 < iVar30" number_literal < identifier) )) (compound_statement "{\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }" { (expression_statement "dVar67 = *(double *)(puVar4 + 0x1418);" (assignment_expression "dVar67 = *(double *)(puVar4 + 0x1418)" identifier = (pointer_expression "*(double *)(puVar4 + 0x1418)" * (cast_expression "(double *)(puVar4 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x1418)" ( (binary_expression "puVar4 + 0x1418" identifier + number_literal) ))))) ;) (expression_statement "dVar66 = *(double *)(puVar5 + -0x5b00);" (assignment_expression "dVar66 = *(double *)(puVar5 + -0x5b00)" identifier = (pointer_expression "*(double *)(puVar5 + -0x5b00)" * (cast_expression "(double *)(puVar5 + -0x5b00)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x5b00)" ( (binary_expression "puVar5 + -0x5b00" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar14;" (assignment_expression "puVar16 = puVar14" identifier = identifier) ;) (expression_statement "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);" (assignment_expression "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28)" identifier = (cast_expression "(double *)(*(int *)(puVar8 + 0x14) + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x14) + 0x28)" ( (binary_expression "*(int *)(puVar8 + 0x14) + 0x28" (pointer_expression "*(int *)(puVar8 + 0x14)" * (cast_expression "(int *)(puVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x14)" ( (binary_expression "puVar8 + 0x14" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);" do (compound_statement "{\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                }" { (expression_statement "puVar38 = puVar16;" (assignment_expression "puVar38 = puVar16" identifier = identifier) ;) (expression_statement "dVar68 = (double)*(int *)puVar38;" (assignment_expression "dVar68 = (double)*(int *)puVar38" identifier = (cast_expression "(double)*(int *)puVar38" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)puVar38" * (cast_expression "(int *)puVar38" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (if_statement "if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }" if (parenthesized_expression "(*(int *)puVar38 < 0)" ( (binary_expression "*(int *)puVar38 < 0" (pointer_expression "*(int *)puVar38" * (cast_expression "(int *)puVar38" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < number_literal) )) (compound_statement "{\n                    dVar68 = dVar68 + dVar67;\n                  }" { (expression_statement "dVar68 = dVar68 + dVar67;" (assignment_expression "dVar68 = dVar68 + dVar67" identifier = (binary_expression "dVar68 + dVar67" identifier + identifier)) ;) })) (expression_statement "*pdVar15 = (double)(float)(dVar68 / in_f24_25);" (assignment_expression "*pdVar15 = (double)(float)(dVar68 / in_f24_25)" (pointer_expression "*pdVar15" * identifier) = (cast_expression "(double)(float)(dVar68 / in_f24_25)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)(dVar68 / in_f24_25)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar68 / in_f24_25)" ( (binary_expression "dVar68 / in_f24_25" identifier / identifier) ))))) ;) (expression_statement "dVar68 = (double)*(int *)(puVar38 + 2);" (assignment_expression "dVar68 = (double)*(int *)(puVar38 + 2)" identifier = (cast_expression "(double)*(int *)(puVar38 + 2)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar38 + 2)" * (cast_expression "(int *)(puVar38 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 2)" ( (binary_expression "puVar38 + 2" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }" if (parenthesized_expression "(*(int *)(puVar38 + 2) < 0)" ( (binary_expression "*(int *)(puVar38 + 2) < 0" (pointer_expression "*(int *)(puVar38 + 2)" * (cast_expression "(int *)(puVar38 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 2)" ( (binary_expression "puVar38 + 2" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                    dVar68 = dVar68 + dVar67;\n                  }" { (expression_statement "dVar68 = dVar68 + dVar67;" (assignment_expression "dVar68 = dVar68 + dVar67" identifier = (binary_expression "dVar68 + dVar67" identifier + identifier)) ;) })) (expression_statement "pdVar15[1] = (double)(float)(dVar68 / dVar66);" (assignment_expression "pdVar15[1] = (double)(float)(dVar68 / dVar66)" (subscript_expression "pdVar15[1]" identifier [ number_literal ]) = (cast_expression "(double)(float)(dVar68 / dVar66)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)(dVar68 / dVar66)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar68 / dVar66)" ( (binary_expression "dVar68 / dVar66" identifier / identifier) ))))) ;) (expression_statement "puVar50 = *(ushort **)(puVar38 + 4);" (assignment_expression "puVar50 = *(ushort **)(puVar38 + 4)" identifier = (pointer_expression "*(ushort **)(puVar38 + 4)" * (cast_expression "(ushort **)(puVar38 + 4)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 4)" ( (binary_expression "puVar38 + 4" identifier + number_literal) ))))) ;) (expression_statement "dVar68 = (double)(int)puVar50;" (assignment_expression "dVar68 = (double)(int)puVar50" identifier = (cast_expression "(double)(int)puVar50" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }" if (parenthesized_expression "((int)puVar50 < 0)" ( (binary_expression "(int)puVar50 < 0" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    dVar68 = dVar68 + in_f22_23;\n                  }" { (expression_statement "dVar68 = dVar68 + in_f22_23;" (assignment_expression "dVar68 = dVar68 + in_f22_23" identifier = (binary_expression "dVar68 + in_f22_23" identifier + identifier)) ;) })) (expression_statement "pdVar15[2] = (double)(float)(dVar68 / dVar66);" (assignment_expression "pdVar15[2] = (double)(float)(dVar68 / dVar66)" (subscript_expression "pdVar15[2]" identifier [ number_literal ]) = (cast_expression "(double)(float)(dVar68 / dVar66)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)(dVar68 / dVar66)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar68 / dVar66)" ( (binary_expression "dVar68 / dVar66" identifier / identifier) ))))) ;) (expression_statement "puVar16 = puVar38 + 6;" (assignment_expression "puVar16 = puVar38 + 6" identifier = (binary_expression "puVar38 + 6" identifier + number_literal)) ;) (expression_statement "pdVar15 = pdVar15 + 0xb;" (assignment_expression "pdVar15 = pdVar15 + 0xb" identifier = (binary_expression "pdVar15 + 0xb" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar38 + 6 != puVar14 + iVar30 * 6)" ( (binary_expression "puVar38 + 6 != puVar14 + iVar30 * 6" (binary_expression "puVar38 + 6" identifier + number_literal) != (binary_expression "puVar14 + iVar30 * 6" identifier + (binary_expression "iVar30 * 6" identifier * number_literal))) )) ;) })) }) (else_clause "else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }" else (compound_statement "{\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }" { (if_statement "if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }" if (parenthesized_expression "(unaff_s4 != (ushort *)&DAT_00000008)" ( (binary_expression "unaff_s4 != (ushort *)&DAT_00000008" identifier != (cast_expression "(ushort *)&DAT_00000008" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000008" & identifier))) )) (compound_statement "{\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }" { (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar14)" ( identifier ))) ;) (expression_statement "uVar48 = 0x398;" (assignment_expression "uVar48 = 0x398" identifier = number_literal) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x5aa8)" ( (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5aa8" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001a9" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (expression_statement "uVar69 = CONCAT44(iVar12,puVar14);" (assignment_expression "uVar69 = CONCAT44(iVar12,puVar14)" identifier = (call_expression "CONCAT44(iVar12,puVar14)" identifier (argument_list "(iVar12,puVar14)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "puVar50 = (ushort *)(iVar30 * 2);" (assignment_expression "puVar50 = (ushort *)(iVar30 * 2)" identifier = (cast_expression "(ushort *)(iVar30 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 * 2)" ( (binary_expression "iVar30 * 2" identifier * number_literal) )))) ;) (if_statement "if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }" if (parenthesized_expression "(0 < iVar30)" ( (binary_expression "0 < iVar30" number_literal < identifier) )) (compound_statement "{\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }" { (expression_statement "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);" (assignment_expression "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28)" identifier = (cast_expression "(double *)(*(int *)(puVar8 + 0x14) + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x14) + 0x28)" ( (binary_expression "*(int *)(puVar8 + 0x14) + 0x28" (pointer_expression "*(int *)(puVar8 + 0x14)" * (cast_expression "(int *)(puVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x14)" ( (binary_expression "puVar8 + 0x14" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar16 = puVar14;" (assignment_expression "puVar16 = puVar14" identifier = identifier) ;) (do_statement "do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);" do (compound_statement "{\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                }" { (expression_statement "puVar33 = (ushort *)((int)puVar16 + 3);" (assignment_expression "puVar33 = (ushort *)((int)puVar16 + 3)" identifier = (cast_expression "(ushort *)((int)puVar16 + 3)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + 3)" ( (binary_expression "(int)puVar16 + 3" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);" (assignment_expression "*pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21)" (pointer_expression "*pdVar15" * identifier) = (cast_expression "(double)(float)((double)*(byte *)puVar16 * in_f20_21)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)((double)*(byte *)puVar16 * in_f20_21)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(byte *)puVar16 * in_f20_21)" ( (binary_expression "(double)*(byte *)puVar16 * in_f20_21" (cast_expression "(double)*(byte *)puVar16" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(byte *)puVar16" * (cast_expression "(byte *)puVar16" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) * identifier) ))))) ;) (expression_statement "pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);" (assignment_expression "pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21)" (subscript_expression "pdVar15[1]" identifier [ number_literal ]) = (cast_expression "(double)(float)((double)(byte)*puVar16 * in_f20_21)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)((double)(byte)*puVar16 * in_f20_21)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)(byte)*puVar16 * in_f20_21)" ( (binary_expression "(double)(byte)*puVar16 * in_f20_21" (binary_expression "(double)(byte)*puVar16" (cast_expression "(double)(byte)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(byte)" ( identifier ))) * identifier) * identifier) ))))) ;) (expression_statement "puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);" (assignment_expression "puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1)" identifier = (binary_expression "(ushort *)(uint)*(byte *)(puVar16 + 1)" (cast_expression "(ushort *)(uint)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(puVar16 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 1)" ( (binary_expression "puVar16 + 1" identifier + number_literal) ))))) ;) (expression_statement "pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);" (assignment_expression "pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21)" (subscript_expression "pdVar15[2]" identifier [ number_literal ]) = (cast_expression "(double)(float)((double)(int)puVar50 * in_f20_21)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)((double)(int)puVar50 * in_f20_21)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)(int)puVar50 * in_f20_21)" ( (binary_expression "(double)(int)puVar50 * in_f20_21" (cast_expression "(double)(int)puVar50" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier)) * identifier) ))))) ;) (expression_statement "pdVar15 = pdVar15 + 0xb;" (assignment_expression "pdVar15 = pdVar15 + 0xb" identifier = (binary_expression "pdVar15 + 0xb" identifier + number_literal)) ;) (expression_statement "puVar16 = puVar33;" (assignment_expression "puVar16 = puVar33" identifier = identifier) ;) }) while (parenthesized_expression "((ushort *)((int)puVar14 + iVar30 * 3) != puVar33)" ( (binary_expression "(ushort *)((int)puVar14 + iVar30 * 3) != puVar33" (cast_expression "(ushort *)((int)puVar14 + iVar30 * 3)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + iVar30 * 3)" ( (binary_expression "(int)puVar14 + iVar30 * 3" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar30 * 3" identifier * number_literal)) ))) != identifier) )) ;) })) }))))) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar14)" ( identifier ))) ;) (expression_statement "uVar69 = CONCAT44(iVar12,puVar14);" (assignment_expression "uVar69 = CONCAT44(iVar12,puVar14)" identifier = (call_expression "CONCAT44(iVar12,puVar14)" identifier (argument_list "(iVar12,puVar14)" ( identifier , identifier )))) ;) })) })) (expression_statement "uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);" (assignment_expression "uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar69 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar69 >> 0x20)" ( (binary_expression "(ulonglong)uVar69 >> 0x20" (cast_expression "(ulonglong)uVar69" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar23 = (undefined4)uVar69;" (assignment_expression "uVar23 = (undefined4)uVar69" identifier = (cast_expression "(undefined4)uVar69" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }" if (parenthesized_expression "(((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           )" ( (binary_expression "((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))" (parenthesized_expression "((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0))" ( (binary_expression "(*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)" (parenthesized_expression "(*(int *)(param_1 + 0xee) != 0)" ( (binary_expression "*(int *)(param_1 + 0xee) != 0" (pointer_expression "*(int *)(param_1 + 0xee)" * (cast_expression "(int *)(param_1 + 0xee)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xee)" ( (binary_expression "param_1 + 0xee" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(param_1 + 0x16) != 0)" ( (binary_expression "*(int *)(param_1 + 0x16) != 0" (pointer_expression "*(int *)(param_1 + 0x16)" * (cast_expression "(int *)(param_1 + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16)" ( (binary_expression "param_1 + 0x16" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))" ( (binary_expression "(*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136)" (binary_expression "(*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U" (parenthesized_expression "(*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14))" ( (binary_expression "*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)" (pointer_expression "*(int *)(param_1 + 0x16)" * (cast_expression "(int *)(param_1 + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16)" ( (binary_expression "param_1 + 0x16" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) )) - number_literal) <= (pointer_expression "*(uint *)(puVar8 + 0x136)" * (cast_expression "(uint *)(puVar8 + 0x136)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x136)" ( (binary_expression "puVar8 + 0x136" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }" { (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(puVar8);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(puVar8)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" ( (pointer_expression "*(code *)PTR_CloseBlob_003a9688" * (cast_expression "(code *)PTR_CloseBlob_003a9688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (if_statement "if (local_309c != 0) goto LAB_002548a8;" if (parenthesized_expression "(local_309c != 0)" ( (binary_expression "local_309c != 0" identifier != number_literal) )) (goto_statement "goto LAB_002548a8;" goto statement_identifier ;)) (goto_statement "goto LAB_00253dbc;" goto statement_identifier ;) })) (expression_statement "iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);" (assignment_expression "iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10)" identifier = (call_expression "(*(code *)PTR_AcquireMagickResource_003a981c)(10)" (parenthesized_expression "(*(code *)PTR_AcquireMagickResource_003a981c)" ( (pointer_expression "*(code *)PTR_AcquireMagickResource_003a981c" * (cast_expression "(code *)PTR_AcquireMagickResource_003a981c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10)" ( number_literal )))) ;) (if_statement "if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }" { (labeled_statement "LAB_002550a8:\n          uVar48 = 0x3db;" statement_identifier : (expression_statement "uVar48 = 0x3db;" (assignment_expression "uVar48 = 0x3db" identifier = number_literal) ;)) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_LAB_003a88e0 + 0x1284)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1284)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1284" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)0x1d1;" (assignment_expression "local_30d8._0_4_ = (ushort *)0x1d1" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)0x1d1" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);" (assignment_expression "iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4)" identifier = (call_expression "(*(code *)PTR_AcquireMagickResource_003a981c)(4)" (parenthesized_expression "(*(code *)PTR_AcquireMagickResource_003a981c)" ( (pointer_expression "*(code *)PTR_AcquireMagickResource_003a981c" * (cast_expression "(code *)PTR_AcquireMagickResource_003a981c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(4)" ( number_literal )))) ;) (if_statement "if (iVar10 == 0) goto LAB_002550a8;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002550a8;" goto statement_identifier ;)) (expression_statement "puVar38 = (ushort *)0x1;" (assignment_expression "puVar38 = (ushort *)0x1" identifier = (cast_expression "(ushort *)0x1" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar50 = auStack_3044;" (assignment_expression "puVar50 = auStack_3044" identifier = identifier) ;) (expression_statement "local_30d8._0_4_ = param_2;" (assignment_expression "local_30d8._0_4_ = param_2" (field_expression "local_30d8._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);" (assignment_expression "iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078)" identifier = (call_expression "(*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078)" (parenthesized_expression "(*(code *)PTR_PersistPixelCache_003a8dc0)" ( (pointer_expression "*(code *)PTR_PersistPixelCache_003a8dc0" * (cast_expression "(code *)PTR_PersistPixelCache_003a8dc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,auStack_3044,1,&local_3078)" ( identifier , identifier , number_literal , (pointer_expression "&local_3078" & identifier) )))) ;) (if_statement "if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }" { (expression_statement "(*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);" (call_expression "(*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2)" (parenthesized_expression "(*(code *)PTR_SetImageExtent_003a94ac)" ( (pointer_expression "*(code *)PTR_SetImageExtent_003a94ac" * (cast_expression "(code *)PTR_SetImageExtent_003a94ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2)" ( identifier , (pointer_expression "*(undefined4 *)(puVar8 + 0xc)" * (cast_expression "(undefined4 *)(puVar8 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xc)" ( (binary_expression "puVar8 + 0xc" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(puVar8 + 0xe)" * (cast_expression "(undefined4 *)(puVar8 + 0xe)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xe)" ( (binary_expression "puVar8 + 0xe" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "uVar48 = 0x3e3;" (assignment_expression "uVar48 = 0x3e3" identifier = number_literal) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001bd;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001bd" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001bd" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001bd" & identifier))) ;) (expression_statement "puVar9 = param_2;" (assignment_expression "puVar9 = param_2" identifier = identifier) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8)" identifier = (call_expression "(*(code *)PTR_EOFBlob_003a9748)(puVar8)" (parenthesized_expression "(*(code *)PTR_EOFBlob_003a9748)" ( (pointer_expression "*(code *)PTR_EOFBlob_003a9748" * (cast_expression "(code *)PTR_EOFBlob_003a9748" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;) (if_statement "if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }" { (expression_statement "puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);" (assignment_expression "puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17)" identifier = (cast_expression "(ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17)" (parenthesized_expression "(*(code *)PTR_GetExceptionMessage_003a93ec)" ( (pointer_expression "*(code *)PTR_GetExceptionMessage_003a93ec" * (cast_expression "(code *)PTR_GetExceptionMessage_003a93ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar17)" ( (pointer_expression "*puVar17" * identifier) ))))) ;) (expression_statement "local_30cc = puVar8 + 0x1a0;" (assignment_expression "local_30cc = puVar8 + 0x1a0" identifier = (binary_expression "puVar8 + 0x1a0" identifier + number_literal)) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0xe78;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0xe78" identifier = (binary_expression "PTR_LAB_003a88e0 + 0xe78" identifier + number_literal)) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_courses_003a88ec + -0x17c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x17c)" ( (binary_expression "PTR_s_courses_003a88ec + -0x17c" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001a9" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (expression_statement "local_30c8 = puVar9;" (assignment_expression "local_30c8 = puVar9" identifier = identifier) ;) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,puVar50,puVar38,1000)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(puVar9);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(puVar9)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" ( (pointer_expression "*(code *)PTR_DestroyString_003a9074" * (cast_expression "(code *)PTR_DestroyString_003a9074" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(puVar8);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(puVar8)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" ( (pointer_expression "*(code *)PTR_CloseBlob_003a9688" * (cast_expression "(code *)PTR_CloseBlob_003a9688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (labeled_statement "LAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);" statement_identifier : (expression_statement "iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8)" identifier = (call_expression "(*(code *)PTR_GetFirstImageInList_003a944c)(puVar8)" (parenthesized_expression "(*(code *)PTR_GetFirstImageInList_003a944c)" ( (pointer_expression "*(code *)PTR_GetFirstImageInList_003a944c" * (cast_expression "(code *)PTR_GetFirstImageInList_003a944c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;)) (expression_statement "param_1 = puVar9;" (assignment_expression "param_1 = puVar9" identifier = identifier) ;) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" identifier = identifier) ;) (expression_statement "uVar69 = CONCAT44(uVar48,uVar23);" (assignment_expression "uVar69 = CONCAT44(uVar48,uVar23)" identifier = (call_expression "CONCAT44(uVar48,uVar23)" identifier (argument_list "(uVar48,uVar23)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_002546dc;" goto statement_identifier ;) })) (expression_statement "uVar48 = 0xffffffff;" (assignment_expression "uVar48 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar69 = CONCAT44(0xffffffff,uVar23);" (assignment_expression "uVar69 = CONCAT44(0xffffffff,uVar23)" identifier = (call_expression "CONCAT44(0xffffffff,uVar23)" identifier (argument_list "(0xffffffff,uVar23)" ( number_literal , identifier )))) ;) (while_statement "while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }" { (expression_statement "unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (expression_statement "unaff_s4 = (ushort *)((int)unaff_s8 * 2);" (assignment_expression "unaff_s4 = (ushort *)((int)unaff_s8 * 2)" identifier = (cast_expression "(ushort *)((int)unaff_s8 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s8 * 2)" ( (binary_expression "(int)unaff_s8 * 2" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;" if (parenthesized_expression "((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0)" ( (binary_expression "(*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0" (parenthesized_expression "(*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80)" ( (binary_expression "*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80" (pointer_expression "*(ushort *)(*(int *)puVar9 + (int)unaff_s4)" * (cast_expression "(ushort *)(*(int *)puVar9 + (int)unaff_s4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar9 + (int)unaff_s4)" ( (binary_expression "*(int *)puVar9 + (int)unaff_s4" (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) & number_literal) )) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar1 = unaff_s8 == (ushort *)0xffffffff;" (assignment_expression "bVar1 = unaff_s8 == (ushort *)0xffffffff" identifier = (binary_expression "unaff_s8 == (ushort *)0xffffffff" identifier == (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" identifier = identifier) ;) (if_statement "if (bVar1) goto LAB_0025489c;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_0025489c;" goto statement_identifier ;)) })) (if_statement "if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }" if (parenthesized_expression "(unaff_s8 == (ushort *)0xffffffff)" ( (binary_expression "unaff_s8 == (ushort *)0xffffffff" identifier == (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }" { (labeled_statement "LAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);" statement_identifier : (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(puVar8);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(puVar8)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" ( (pointer_expression "*(code *)PTR_CloseBlob_003a9688" * (cast_expression "(code *)PTR_CloseBlob_003a9688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;)) (expression_statement "puVar11 = unaff_s8;" (assignment_expression "puVar11 = unaff_s8" identifier = identifier) ;) (goto_statement "goto LAB_002548a8;" goto statement_identifier ;) })) (expression_statement "puVar50 = puVar8;" (assignment_expression "puVar50 = puVar8" identifier = identifier) ;) (expression_statement "puVar38 = param_2;" (assignment_expression "puVar38 = param_2" identifier = identifier) ;) (expression_statement "(*(code *)PTR_AcquireNextImage_003a8f90)(param_1);" (call_expression "(*(code *)PTR_AcquireNextImage_003a8f90)(param_1)" (parenthesized_expression "(*(code *)PTR_AcquireNextImage_003a8f90)" ( (pointer_expression "*(code *)PTR_AcquireNextImage_003a8f90" * (cast_expression "(code *)PTR_AcquireNextImage_003a8f90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8)" identifier = (call_expression "(*(code *)PTR_GetNextImageInList_003a9470)(puVar8)" (parenthesized_expression "(*(code *)PTR_GetNextImageInList_003a9470)" ( (pointer_expression "*(code *)PTR_GetNextImageInList_003a9470" * (cast_expression "(code *)PTR_GetNextImageInList_003a9470" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;) (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);" (assignment_expression "puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8)" (parenthesized_expression "(*(code *)PTR_SyncNextImageInList_003a9408)" ( (pointer_expression "*(code *)PTR_SyncNextImageInList_003a9408" * (cast_expression "(code *)PTR_SyncNextImageInList_003a9408" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (expression_statement "uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);" (assignment_expression "uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8)" identifier = (call_expression "(*(code *)PTR_TellBlob_003a931c)(puVar8)" (parenthesized_expression "(*(code *)PTR_TellBlob_003a931c)" ( (pointer_expression "*(code *)PTR_TellBlob_003a931c" * (cast_expression "(code *)PTR_TellBlob_003a931c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;) (expression_statement "puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);" (assignment_expression "puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20)" identifier = (cast_expression "(ushort *)((ulonglong)uVar69 >> 0x20)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar69 >> 0x20)" ( (binary_expression "(ulonglong)uVar69 >> 0x20" (cast_expression "(ulonglong)uVar69" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);" (assignment_expression "local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8)" identifier = (call_expression "(*(code *)PTR_GetBlobSize_003a94b8)(puVar8)" (parenthesized_expression "(*(code *)PTR_GetBlobSize_003a94b8)" ( (pointer_expression "*(code *)PTR_GetBlobSize_003a94b8" * (cast_expression "(code *)PTR_GetBlobSize_003a94b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);" (assignment_expression "puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168)" identifier = (cast_expression "(ushort *)(PTR_s_courses_003a88ec + -0x168)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x168)" ( (binary_expression "PTR_s_courses_003a88ec + -0x168" identifier + number_literal) )))) ;) (expression_statement "local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);" (assignment_expression "local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69)" identifier = (call_expression "(*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69)" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003a8cb4)" ( (pointer_expression "*(code *)PTR_SetImageProgress_003a8cb4" * (cast_expression "(code *)PTR_SetImageProgress_003a8cb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,puVar50,puVar38,(int)uVar69)" ( identifier , identifier , identifier , (cast_expression "(int)uVar69" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) while (parenthesized_expression "(local_309c != 0)" ( (binary_expression "local_309c != 0" identifier != number_literal) )) ;) (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(puVar8);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(puVar8)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" ( (pointer_expression "*(code *)PTR_CloseBlob_003a9688" * (cast_expression "(code *)PTR_CloseBlob_003a9688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "puVar11 = unaff_s8;" (assignment_expression "puVar11 = unaff_s8" identifier = identifier) ;) (labeled_statement "LAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);" statement_identifier : (expression_statement "iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8)" identifier = (call_expression "(*(code *)PTR_DestroyImageList_003a9510)(puVar8)" (parenthesized_expression "(*(code *)PTR_DestroyImageList_003a9510)" ( (pointer_expression "*(code *)PTR_DestroyImageList_003a9510" * (cast_expression "(code *)PTR_DestroyImageList_003a9510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;)) (expression_statement "param_1 = puVar9;" (assignment_expression "param_1 = puVar9" identifier = identifier) ;) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_002546dc:\n  if (local_44 == *(int *)puVar54) {\n    return iVar10;\n  }" statement_identifier : (if_statement "if (local_44 == *(int *)puVar54) {\n    return iVar10;\n  }" if (parenthesized_expression "(local_44 == *(int *)puVar54)" ( (binary_expression "local_44 == *(int *)puVar54" identifier == (pointer_expression "*(int *)puVar54" * (cast_expression "(int *)puVar54" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar10;\n  }" { (return_statement "return iVar10;" return identifier ;) }))) (expression_statement "pcVar55 = FUN_002555c4;" (assignment_expression "pcVar55 = FUN_002555c4" identifier = identifier) ;) (expression_statement "iVar10 = local_44;" (assignment_expression "iVar10 = local_44" identifier = identifier) ;) (expression_statement "puVar54 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar54 = PTR___stack_chk_fail_003a9064" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar18 = *(int **)(puVar54 + 0x153c6c);" (assignment_expression "piVar18 = *(int **)(puVar54 + 0x153c6c)" identifier = (pointer_expression "*(int **)(puVar54 + 0x153c6c)" * (cast_expression "(int **)(puVar54 + 0x153c6c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153c6c)" ( (binary_expression "puVar54 + 0x153c6c" identifier + number_literal) ))))) ;) (expression_statement "iStack_3144 = *piVar18;" (assignment_expression "iStack_3144 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) (expression_statement "puStack_3140 = puVar8;" (assignment_expression "puStack_3140 = puVar8" identifier = identifier) ;) (expression_statement "puStack_313c = param_1;" (assignment_expression "puStack_313c = param_1" identifier = identifier) ;) (expression_statement "puStack_3130 = unaff_s4;" (assignment_expression "puStack_3130 = unaff_s4" identifier = identifier) ;) (expression_statement "puStack_312c = unaff_s5;" (assignment_expression "puStack_312c = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_3128 = unaff_s6;" (assignment_expression "puStack_3128 = unaff_s6" identifier = identifier) ;) (expression_statement "puStack_3124 = unaff_s7;" (assignment_expression "puStack_3124 = unaff_s7" identifier = identifier) ;) (expression_statement "puStack_3120 = unaff_s8;" (assignment_expression "puStack_3120 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_311c = pcVar55;" (assignment_expression "pcStack_311c = pcVar55" identifier = identifier) ;) (expression_statement "dStack_3118 = in_f20_21;" (assignment_expression "dStack_3118 = in_f20_21" identifier = identifier) ;) (expression_statement "dStack_3110 = in_f22_23;" (assignment_expression "dStack_3110 = in_f22_23" identifier = identifier) ;) (expression_statement "dStack_3108 = in_f24_25;" (assignment_expression "dStack_3108 = in_f24_25" identifier = identifier) ;) (expression_statement "uStack_3138 = uVar69;" (assignment_expression "uStack_3138 = uVar69" identifier = identifier) ;) (if_statement "if (iVar10 == 0) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);\n    return iVar10;\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);\n    return iVar10;\n  }" { (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274)" identifier = (call_expression "(**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" ( (pointer_expression "**(code **)(puVar54 + 0x154044)" * (pointer_expression "*(code **)(puVar54 + 0x154044)" * (cast_expression "(code **)(puVar54 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154044)" ( (binary_expression "puVar54 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274)" ( (binary_expression "*(int *)(puVar54 + 0x15331c) + 0xd78" (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7274" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (expression_statement "puVar8 = *(ushort **)(puVar54 + 0x153388);" (assignment_expression "puVar8 = *(ushort **)(puVar54 + 0x153388)" identifier = (pointer_expression "*(ushort **)(puVar54 + 0x153388)" * (cast_expression "(ushort **)(puVar54 + 0x153388)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar10 + 0x3214) != -0x54535255) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);\n    return iVar10;\n  }" if (parenthesized_expression "(*(int *)(iVar10 + 0x3214) != -0x54535255)" ( (binary_expression "*(int *)(iVar10 + 0x3214) != -0x54535255" (pointer_expression "*(int *)(iVar10 + 0x3214)" * (cast_expression "(int *)(iVar10 + 0x3214)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x3214)" ( (binary_expression "iVar10 + 0x3214" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);\n    return iVar10;\n  }" { (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a)" identifier = (call_expression "(**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" ( (pointer_expression "**(code **)(puVar54 + 0x154044)" * (pointer_expression "*(code **)(puVar54 + 0x154044)" * (cast_expression "(code **)(puVar54 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154044)" ( (binary_expression "puVar54 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a)" ( (binary_expression "*(int *)(puVar54 + 0x15331c) + 0xda0" (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "puVar8 + -0x393a" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (puVar50 != (ushort *)0x0) {\n    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }\n    if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }\n    if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    puVar8 = puVar38;\n    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);\n    if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }\n    if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }\n    (**(code **)(puVar54 + 0x153aa0))();\n  }" if (parenthesized_expression "(puVar50 != (ushort *)0x0)" ( (binary_expression "puVar50 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }\n    if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }\n    if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    puVar8 = puVar38;\n    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);\n    if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }\n    if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }\n    (**(code **)(puVar54 + 0x153aa0))();\n  }" { (if_statement "if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }" if (parenthesized_expression "(*(int *)(puVar50 + 0x19b6) != -0x54535255)" ( (binary_expression "*(int *)(puVar50 + 0x19b6) != -0x54535255" (pointer_expression "*(int *)(puVar50 + 0x19b6)" * (cast_expression "(int *)(puVar50 + 0x19b6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x19b6)" ( (binary_expression "puVar50 + 0x19b6" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }" { (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a)" identifier = (call_expression "(**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" ( (pointer_expression "**(code **)(puVar54 + 0x154044)" * (pointer_expression "*(code **)(puVar54 + 0x154044)" * (cast_expression "(code **)(puVar54 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154044)" ( (binary_expression "puVar54 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a)" ( (binary_expression "*(int *)(puVar54 + 0x153324) + -0x3784" (pointer_expression "*(int *)(puVar54 + 0x153324)" * (cast_expression "(int *)(puVar54 + 0x153324)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153324)" ( (binary_expression "puVar54 + 0x153324" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "puVar8 + -0x393a" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }" if (parenthesized_expression "(*(int *)(puVar50 + 0x19a8) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x19a8) != 0" (pointer_expression "*(int *)(puVar50 + 0x19a8)" * (cast_expression "(int *)(puVar50 + 0x19a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x19a8)" ( (binary_expression "puVar50 + 0x19a8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }" { (expression_statement "(**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);" (call_expression "(**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0)" (parenthesized_expression "(**(code **)(puVar54 + 0x153c1c))" ( (pointer_expression "**(code **)(puVar54 + 0x153c1c)" * (pointer_expression "*(code **)(puVar54 + 0x153c1c)" * (cast_expression "(code **)(puVar54 + 0x153c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153c1c)" ( (binary_expression "puVar54 + 0x153c1c" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0)" ( number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7284" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar54 + 0x153320) + -0x62ac" (pointer_expression "*(int *)(puVar54 + 0x153320)" * (cast_expression "(int *)(puVar54 + 0x153320)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153320)" ( (binary_expression "puVar54 + 0x153320" identifier + number_literal) )))) + number_literal) , (binary_expression "puVar50 + 0x1a0" identifier + number_literal) ))) ;) })) (if_statement "if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }" if (parenthesized_expression "(puVar38 == (ushort *)0x0)" ( (binary_expression "puVar38 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }" { (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" identifier = (call_expression "(**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" ( (pointer_expression "**(code **)(puVar54 + 0x154044)" * (pointer_expression "*(code **)(puVar54 + 0x154044)" * (cast_expression "(code **)(puVar54 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154044)" ( (binary_expression "puVar54 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" ( (binary_expression "*(int *)(puVar54 + 0x15331c) + 0x1cac" (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7274" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }" if (parenthesized_expression "(*(int *)(puVar38 + 0xe) != -0x54535255)" ( (binary_expression "*(int *)(puVar38 + 0xe) != -0x54535255" (pointer_expression "*(int *)(puVar38 + 0xe)" * (cast_expression "(int *)(puVar38 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0xe)" ( (binary_expression "puVar38 + 0xe" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }" { (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" identifier = (call_expression "(**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" ( (pointer_expression "**(code **)(puVar54 + 0x154044)" * (pointer_expression "*(code **)(puVar54 + 0x154044)" * (cast_expression "(code **)(puVar54 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154044)" ( (binary_expression "puVar54 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" ( (binary_expression "*(int *)(puVar54 + 0x15331c) + 0x294c" (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7274" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (expression_statement "puVar8 = puVar38;" (assignment_expression "puVar8 = puVar38" identifier = identifier) ;) (expression_statement "iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);" (assignment_expression "iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38)" identifier = (call_expression "(**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38)" (parenthesized_expression "(**(code **)(puVar54 + 0x153c88))" ( (pointer_expression "**(code **)(puVar54 + 0x153c88)" * (pointer_expression "*(code **)(puVar54 + 0x153c88)" * (cast_expression "(code **)(puVar54 + 0x153c88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153c88)" ( (binary_expression "puVar54 + 0x153c88" identifier + number_literal) ))))) )) (argument_list "(iVar10,puVar50,4,puVar38)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }" if (parenthesized_expression "(iVar30 == 0)" ( (binary_expression "iVar30 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0025569c:\n      iVar46 = 0;\n    }" { (labeled_statement "LAB_0025569c:\n      iVar46 = 0;" statement_identifier : (expression_statement "iVar46 = 0;" (assignment_expression "iVar46 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }" else (compound_statement "{\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }" { (expression_statement "iVar47 = *(int *)(puVar54 + 0x15331c);" (assignment_expression "iVar47 = *(int *)(puVar54 + 0x15331c)" identifier = (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) ))))) ;) (expression_statement "iVar49 = *(int *)(puVar54 + 0x15331c);" (assignment_expression "iVar49 = *(int *)(puVar54 + 0x15331c)" identifier = (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) ))))) ;) (expression_statement "iVar51 = *(int *)(puVar54 + 0x15331c);" (assignment_expression "iVar51 = *(int *)(puVar54 + 0x15331c)" identifier = (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);" (call_expression "(**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa)" (parenthesized_expression "(**(code **)(puVar54 + 0x154278))" ( (pointer_expression "**(code **)(puVar54 + 0x154278)" * (pointer_expression "*(code **)(puVar54 + 0x154278)" * (cast_expression "(code **)(puVar54 + 0x154278)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154278)" ( (binary_expression "puVar54 + 0x154278" identifier + number_literal) ))))) )) (argument_list "(auStack_4144,puVar50 + 0x1a0,0xffa)" ( identifier , (binary_expression "puVar50 + 0x1a0" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar30 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar30 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar12 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar19 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);" (call_expression "(**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144)" (parenthesized_expression "(**(code **)(puVar54 + 0x1539e4))" ( (pointer_expression "**(code **)(puVar54 + 0x1539e4)" * (pointer_expression "*(code **)(puVar54 + 0x1539e4)" * (cast_expression "(code **)(puVar54 + 0x1539e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1539e4)" ( (binary_expression "puVar54 + 0x1539e4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144)" ( (binary_expression "*(int *)(puVar54 + 0x153328) + -0x50b8" (pointer_expression "*(int *)(puVar54 + 0x153328)" * (cast_expression "(int *)(puVar54 + 0x153328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153328)" ( (binary_expression "puVar54 + 0x153328" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uStack_514c = 0;" (assignment_expression "uStack_514c = 0" identifier = number_literal) ;) (expression_statement "uStack_5150 = 0;" (assignment_expression "uStack_5150 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar54 + 0x153cb4))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x153cb4))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153cb4))" ( (pointer_expression "**(code **)(puVar54 + 0x153cb4)" * (pointer_expression "*(code **)(puVar54 + 0x153cb4)" * (cast_expression "(code **)(puVar54 + 0x153cb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153cb4)" ( (binary_expression "puVar54 + 0x153cb4" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))) ;) (expression_statement "dVar68 = *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar68 = *(double *)(iVar47 + 0x1418)" identifier = (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar20 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "dVar67 = *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar67 = *(double *)(iVar49 + 0x1400)" identifier = (pointer_expression "*(double *)(iVar49 + 0x1400)" * (cast_expression "(double *)(iVar49 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1400)" ( (binary_expression "iVar49 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "iVar31 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar31 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "dVar66 = *(double *)(iVar51 + 0x1410);" (assignment_expression "dVar66 = *(double *)(iVar51 + 0x1410)" identifier = (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar21 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "puStack_5188 = (ushort *)0x0;" (assignment_expression "puStack_5188 = (ushort *)0x0" identifier = (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar22 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar22 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (do_statement "do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);" do (compound_statement "{\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      }" { (expression_statement "(**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);" (call_expression "(**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38)" (parenthesized_expression "(**(code **)(puVar54 + 0x154260))" ( (pointer_expression "**(code **)(puVar54 + 0x154260)" * (pointer_expression "*(code **)(puVar54 + 0x154260)" * (cast_expression "(code **)(puVar54 + 0x154260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154260)" ( (binary_expression "puVar54 + 0x154260" identifier + number_literal) ))))) )) (argument_list "(puVar50,*(undefined4 *)puVar50,puVar38)" ( identifier , (pointer_expression "*(undefined4 *)puVar50" * (cast_expression "(undefined4 *)puVar50" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , identifier ))) ;) (expression_statement "iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);" (assignment_expression "iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1)" identifier = (call_expression "(**(code **)(puVar54 + 0x153c24))(puVar50,1)" (parenthesized_expression "(**(code **)(puVar54 + 0x153c24))" ( (pointer_expression "**(code **)(puVar54 + 0x153c24)" * (pointer_expression "*(code **)(puVar54 + 0x153c24)" * (cast_expression "(code **)(puVar54 + 0x153c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153c24)" ( (binary_expression "puVar54 + 0x153c24" identifier + number_literal) ))))) )) (argument_list "(puVar50,1)" ( identifier , number_literal )))) ;) (if_statement "if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }" if (parenthesized_expression "(*(int *)puVar50 == 2)" ( (binary_expression "*(int *)puVar50 == 2" (pointer_expression "*(int *)puVar50" * (cast_expression "(int *)puVar50" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }" { (expression_statement "uVar13 = *(uint *)(puVar50 + 0x10);" (assignment_expression "uVar13 = *(uint *)(puVar50 + 0x10)" identifier = (pointer_expression "*(uint *)(puVar50 + 0x10)" * (cast_expression "(uint *)(puVar50 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x10)" ( (binary_expression "puVar50 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar13 = 1;\n          }" { (expression_statement "uVar13 = 1;" (assignment_expression "uVar13 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }" else (compound_statement "{\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }" { (expression_statement "uVar36 = 0;" (assignment_expression "uVar36 = 0" identifier = number_literal) ;) (if_statement "if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }" if (parenthesized_expression "(uVar13 < 0x41)" ( (binary_expression "uVar13 < 0x41" identifier < number_literal) )) (compound_statement "{\n              uVar36 = uVar13;\n            }" { (expression_statement "uVar36 = uVar13;" (assignment_expression "uVar36 = uVar13" identifier = identifier) ;) })) (expression_statement "uVar13 = 2 << (uVar36 - 1 & 0x1f);" (assignment_expression "uVar13 = 2 << (uVar36 - 1 & 0x1f)" identifier = (binary_expression "2 << (uVar36 - 1 & 0x1f)" number_literal << (parenthesized_expression "(uVar36 - 1 & 0x1f)" ( (binary_expression "uVar36 - 1 & 0x1f" (binary_expression "uVar36 - 1" identifier - number_literal) & number_literal) )))) ;) (if_statement "if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }" if (parenthesized_expression "((uVar36 - 1 & 0x20) != 0)" ( (binary_expression "(uVar36 - 1 & 0x20) != 0" (parenthesized_expression "(uVar36 - 1 & 0x20)" ( (binary_expression "uVar36 - 1 & 0x20" (binary_expression "uVar36 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar13 = 0;\n            }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) })) }))) (if_statement "if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }" if (parenthesized_expression "(uVar13 < *(uint *)(puVar50 + 0x12))" ( (binary_expression "uVar13 < *(uint *)(puVar50 + 0x12)" identifier < (pointer_expression "*(uint *)(puVar50 + 0x12)" * (cast_expression "(uint *)(puVar50 + 0x12)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12)" ( (binary_expression "puVar50 + 0x12" identifier + number_literal) ))))) )) (compound_statement "{\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }" { (expression_statement "(**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);" (call_expression "(**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38)" (parenthesized_expression "(**(code **)(puVar54 + 0x154260))" ( (pointer_expression "**(code **)(puVar54 + 0x154260)" * (pointer_expression "*(code **)(puVar54 + 0x154260)" * (cast_expression "(code **)(puVar54 + 0x154260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154260)" ( (binary_expression "puVar54 + 0x154260" identifier + number_literal) ))))) )) (argument_list "(puVar50,1,puVar38)" ( identifier , number_literal , identifier ))) ;) })) })) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,iVar30 + -0x7434)" ( identifier , (binary_expression "iVar30 + -0x7434" identifier + number_literal) ))) ;) (expression_statement "uVar48 = (**(code **)(puVar54 + 0x154128))(0);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x154128))(0)" identifier = (call_expression "(**(code **)(puVar54 + 0x154128))(0)" (parenthesized_expression "(**(code **)(puVar54 + 0x154128))" ( (pointer_expression "**(code **)(puVar54 + 0x154128)" * (pointer_expression "*(code **)(puVar54 + 0x154128)" * (cast_expression "(code **)(puVar54 + 0x154128)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154128)" ( (binary_expression "puVar54 + 0x154128" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,iVar12 + -0x741c,uVar48)" ( identifier , number_literal , (binary_expression "iVar12 + -0x741c" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(5,*(undefined4 *)puVar50)" ( number_literal , (pointer_expression "*(undefined4 *)puVar50" * (cast_expression "(undefined4 *)puVar50" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (expression_statement "dVar65 = (double)*(int *)(puVar50 + 0x12);" (assignment_expression "dVar65 = (double)*(int *)(puVar50 + 0x12)" identifier = (cast_expression "(double)*(int *)(puVar50 + 0x12)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 0x12)" * (cast_expression "(int *)(puVar50 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12)" ( (binary_expression "puVar50 + 0x12" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x12) < 0)" ( (binary_expression "*(int *)(puVar50 + 0x12) < 0" (pointer_expression "*(int *)(puVar50 + 0x12)" * (cast_expression "(int *)(puVar50 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12)" ( (binary_expression "puVar50 + 0x12" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          dVar65 = dVar65 + dVar68;\n        }" { (expression_statement "dVar65 = dVar65 + dVar68;" (assignment_expression "dVar65 = dVar65 + dVar68" identifier = (binary_expression "dVar65 + dVar68" identifier + identifier)) ;) })) (expression_statement "uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));" (assignment_expression "uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e))" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e))" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x3a,*(undefined4 *)(puVar50 + 0x15e))" ( number_literal , (pointer_expression "*(undefined4 *)(puVar50 + 0x15e)" * (cast_expression "(undefined4 *)(puVar50 + 0x15e)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x15e)" ( (binary_expression "puVar50 + 0x15e" identifier + number_literal) )))) )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)" ( identifier , number_literal , (binary_expression "iVar19 + -0x7990" identifier + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,iVar31 + -0x7404)" ( identifier , number_literal , (binary_expression "iVar31 + -0x7404" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "dVar65 = (double)*(int *)(puVar50 + 0x10);" (assignment_expression "dVar65 = (double)*(int *)(puVar50 + 0x10)" identifier = (cast_expression "(double)*(int *)(puVar50 + 0x10)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 0x10)" * (cast_expression "(int *)(puVar50 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x10)" ( (binary_expression "puVar50 + 0x10" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x10) < 0)" ( (binary_expression "*(int *)(puVar50 + 0x10) < 0" (pointer_expression "*(int *)(puVar50 + 0x10)" * (cast_expression "(int *)(puVar50 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x10)" ( (binary_expression "puVar50 + 0x10" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }" { (expression_statement "dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar65 = dVar65 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar65 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar56 = (double)*(int *)(puVar50 + 0xe);" (assignment_expression "dVar56 = (double)*(int *)(puVar50 + 0xe)" identifier = (cast_expression "(double)*(int *)(puVar50 + 0xe)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 0xe)" * (cast_expression "(int *)(puVar50 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xe)" ( (binary_expression "puVar50 + 0xe" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0xe) < 0)" ( (binary_expression "*(int *)(puVar50 + 0xe) < 0" (pointer_expression "*(int *)(puVar50 + 0xe)" * (cast_expression "(int *)(puVar50 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xe)" ( (binary_expression "puVar50 + 0xe" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }" { (expression_statement "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar56 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar57 = (double)*(int *)(puVar50 + 0xc);" (assignment_expression "dVar57 = (double)*(int *)(puVar50 + 0xc)" identifier = (cast_expression "(double)*(int *)(puVar50 + 0xc)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 0xc)" * (cast_expression "(int *)(puVar50 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xc)" ( (binary_expression "puVar50 + 0xc" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0xc) < 0)" ( (binary_expression "*(int *)(puVar50 + 0xc) < 0" (pointer_expression "*(int *)(puVar50 + 0xc)" * (cast_expression "(int *)(puVar50 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xc)" ( (binary_expression "puVar50 + 0xc" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }" { (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,iVar20 + -0x73d0)" ( identifier , number_literal , (binary_expression "iVar20 + -0x73d0" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x150) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x150) != 0" (pointer_expression "*(int *)(puVar50 + 0x150)" * (cast_expression "(int *)(puVar50 + 0x150)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x150)" ( (binary_expression "puVar50 + 0x150" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x49)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x49)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7934" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2))" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2))" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(9,*(undefined4 *)(puVar50 + 2))" ( number_literal , (pointer_expression "*(undefined4 *)(puVar50 + 2)" * (cast_expression "(undefined4 *)(puVar50 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 2)" ( (binary_expression "puVar50 + 2" identifier + number_literal) )))) )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,iVar21 + -0x7928,uVar48)" ( identifier , number_literal , (binary_expression "iVar21 + -0x7928" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x12a) == 0)" ( (binary_expression "*(int *)(puVar50 + 0x12a) == 0" (pointer_expression "*(int *)(puVar50 + 0x12a)" * (cast_expression "(int *)(puVar50 + 0x12a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12a)" ( (binary_expression "puVar50 + 0x12a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }" { (expression_statement "pcVar55 = *(code **)(puVar54 + 0x15379c);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x15379c)" identifier = (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;" if (parenthesized_expression "(*(int *)(puVar50 + 0x12e) == 0)" ( (binary_expression "*(int *)(puVar50 + 0x12e) == 0" (pointer_expression "*(int *)(puVar50 + 0x12e)" * (cast_expression "(int *)(puVar50 + 0x12e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12e)" ( (binary_expression "puVar50 + 0x12e" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00255a3c;" goto statement_identifier ;)) (labeled_statement "LAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);" statement_identifier : (expression_statement "uVar48 = (*pcVar55)(0x18);" (assignment_expression "uVar48 = (*pcVar55)(0x18)" identifier = (call_expression "(*pcVar55)(0x18)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "(0x18)" ( number_literal )))) ;)) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7904" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }" if (parenthesized_expression "(*(int *)(puVar50 + 4) != 0)" ( (binary_expression "*(int *)(puVar50 + 4) != 0" (pointer_expression "*(int *)(puVar50 + 4)" * (cast_expression "(int *)(puVar50 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 4)" ( (binary_expression "puVar50 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }" { (expression_statement "pcVar55 = *(code **)(puVar54 + 0x15379c);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x15379c)" identifier = (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0025663c;" goto statement_identifier ;) })) }) (else_clause "else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }" else (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }" { (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x38)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x38)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -31000" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }" if (parenthesized_expression "(*(int *)(puVar50 + 0x12e) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x12e) != 0" (pointer_expression "*(int *)(puVar50 + 0x12e)" * (cast_expression "(int *)(puVar50 + 0x12e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12e)" ( (binary_expression "puVar50 + 0x12e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }" { (expression_statement "pcVar55 = *(code **)(puVar54 + 0x15379c);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x15379c)" identifier = (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002565f0;" goto statement_identifier ;) })) (labeled_statement "LAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);" statement_identifier : (expression_statement "pcVar55 = *(code **)(puVar54 + 0x15379c);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x15379c)" identifier = (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) ;)) (if_statement "if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" if (parenthesized_expression "(*(int *)(puVar50 + 4) != 0)" ( (binary_expression "*(int *)(puVar50 + 4) != 0" (pointer_expression "*(int *)(puVar50 + 4)" * (cast_expression "(int *)(puVar50 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 4)" ( (binary_expression "puVar50 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" { (labeled_statement "LAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);" statement_identifier : (expression_statement "uVar48 = (*pcVar55)(0xe);" (assignment_expression "uVar48 = (*pcVar55)(0xe)" identifier = (call_expression "(*pcVar55)(0xe)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "(0xe)" ( number_literal )))) ;)) (expression_statement "dVar57 = (double)*(int *)(puVar50 + 6);" (assignment_expression "dVar57 = (double)*(int *)(puVar50 + 6)" identifier = (cast_expression "(double)*(int *)(puVar50 + 6)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 6)" * (cast_expression "(int *)(puVar50 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 6)" ( (binary_expression "puVar50 + 6" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" if (parenthesized_expression "(*(int *)(puVar50 + 6) < 0)" ( (binary_expression "*(int *)(puVar50 + 6) < 0" (pointer_expression "*(int *)(puVar50 + 6)" * (cast_expression "(int *)(puVar50 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 6)" ( (binary_expression "puVar50 + 6" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" { (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x78f8" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) }))) (if_statement "if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x100) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x100) != 0" (pointer_expression "*(int *)(puVar50 + 0x100)" * (cast_expression "(int *)(puVar50 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x100)" ( (binary_expression "puVar50 + 0x100" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x41)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x41)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x78d8" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (expression_statement "dVar65 = *(double *)(puVar50 + 0x10c);" (assignment_expression "dVar65 = *(double *)(puVar50 + 0x10c)" identifier = (pointer_expression "*(double *)(puVar50 + 0x10c)" * (cast_expression "(double *)(puVar50 + 0x10c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x10c)" ( (binary_expression "puVar50 + 0x10c" identifier + number_literal) ))))) ;) (expression_statement "dVar61 = *(double *)(puVar50 + 0x110);" (assignment_expression "dVar61 = *(double *)(puVar50 + 0x110)" identifier = (pointer_expression "*(double *)(puVar50 + 0x110)" * (cast_expression "(double *)(puVar50 + 0x110)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x110)" ( (binary_expression "puVar50 + 0x110" identifier + number_literal) ))))) ;) (if_statement "if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }" if (parenthesized_expression "((dVar65 != 0.0) || (dVar61 != 0.0))" ( (binary_expression "(dVar65 != 0.0) || (dVar61 != 0.0)" (parenthesized_expression "(dVar65 != 0.0)" ( (binary_expression "dVar65 != 0.0" identifier != number_literal) )) || (parenthesized_expression "(dVar61 != 0.0)" ( (binary_expression "dVar61 != 0.0" identifier != number_literal) ))) )) (compound_statement "{\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }" { (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x78cc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "dVar57 = dVar65;" (assignment_expression "dVar57 = dVar65" identifier = identifier) ;) (expression_statement "dVar56 = dVar61;" (assignment_expression "dVar56 = dVar61" identifier = identifier) ;) })) (expression_statement "iVar32 = *(int *)(puVar50 + 0x114);" (assignment_expression "iVar32 = *(int *)(puVar50 + 0x114)" identifier = (pointer_expression "*(int *)(puVar50 + 0x114)" * (cast_expression "(int *)(puVar50 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x114)" ( (binary_expression "puVar50 + 0x114" identifier + number_literal) ))))) ;) (expression_statement "iVar34 = *(int *)(puVar50 + 0x116);" (assignment_expression "iVar34 = *(int *)(puVar50 + 0x116)" identifier = (pointer_expression "*(int *)(puVar50 + 0x116)" * (cast_expression "(int *)(puVar50 + 0x116)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x116)" ( (binary_expression "puVar50 + 0x116" identifier + number_literal) ))))) ;) (expression_statement "iVar39 = *(int *)(puVar50 + 0x118);" (assignment_expression "iVar39 = *(int *)(puVar50 + 0x118)" identifier = (pointer_expression "*(int *)(puVar50 + 0x118)" * (cast_expression "(int *)(puVar50 + 0x118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x118)" ( (binary_expression "puVar50 + 0x118" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = *(int *)(puVar50 + 0x11a);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x11a)" identifier = (pointer_expression "*(int *)(puVar50 + 0x11a)" * (cast_expression "(int *)(puVar50 + 0x11a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x11a)" ( (binary_expression "puVar50 + 0x11a" identifier + number_literal) ))))) ;) (if_statement "if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "((iVar32 == 0) && (iVar34 == 0))" ( (binary_expression "(iVar32 == 0) && (iVar34 == 0)" (parenthesized_expression "(iVar32 == 0)" ( (binary_expression "iVar32 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar34 == 0)" ( (binary_expression "iVar34 == 0" identifier == number_literal) ))) )) (compound_statement "{\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }" { (if_statement "if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }" if (parenthesized_expression "((iVar39 != 0) || (iVar24 != 0))" ( (binary_expression "(iVar39 != 0) || (iVar24 != 0)" (parenthesized_expression "(iVar39 != 0)" ( (binary_expression "iVar39 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) ))) )) (compound_statement "{\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }" { (expression_statement "uVar48 = SUB84(dVar57,0);" (assignment_expression "uVar48 = SUB84(dVar57,0)" identifier = (call_expression "SUB84(dVar57,0)" identifier (argument_list "(dVar57,0)" ( identifier , number_literal )))) ;) (expression_statement "dVar57 = (double)CONCAT44(iVar24,uVar48);" (assignment_expression "dVar57 = (double)CONCAT44(iVar24,uVar48)" identifier = (cast_expression "(double)CONCAT44(iVar24,uVar48)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar24,uVar48)" identifier (argument_list "(iVar24,uVar48)" ( identifier , identifier ))))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7898" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_00255ed4;" goto statement_identifier ;) })) }) (else_clause "else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" else (compound_statement "{\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "dVar56 = (double)iVar34;" (assignment_expression "dVar56 = (double)iVar34" identifier = (cast_expression "(double)iVar34" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }" if (parenthesized_expression "(iVar34 < 0)" ( (binary_expression "iVar34 < 0" identifier < number_literal) )) (compound_statement "{\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }" { (expression_statement "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar56 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar57 = (double)iVar32;" (assignment_expression "dVar57 = (double)iVar32" identifier = (cast_expression "(double)iVar32" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }" if (parenthesized_expression "(iVar32 < 0)" ( (binary_expression "iVar32 < 0" identifier < number_literal) )) (compound_statement "{\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }" { (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x78b8" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier , (cast_expression "(double)iVar39" ( (type_descriptor "double" primitive_type) ) identifier) , (cast_expression "(double)iVar24" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) (labeled_statement "LAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" statement_identifier : (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;)) }))) (expression_statement "iVar24 = *(int *)(puVar50 + 0x14e);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x14e)" identifier = (pointer_expression "*(int *)(puVar50 + 0x14e)" * (cast_expression "(int *)(puVar50 + 0x14e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14e)" ( (binary_expression "puVar50 + 0x14e" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }" if (parenthesized_expression "((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0))" ( (binary_expression "(*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)" (parenthesized_expression "(*(int *)(puVar50 + 0x14c) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x14c) != 0" (pointer_expression "*(int *)(puVar50 + 0x14c)" * (cast_expression "(int *)(puVar50 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14c)" ( (binary_expression "puVar50 + 0x14c" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)" ( (comma_expression "pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x153eac)" identifier = (pointer_expression "*(code **)(puVar54 + 0x153eac)" * (cast_expression "(code **)(puVar54 + 0x153eac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153eac)" ( (binary_expression "puVar54 + 0x153eac" identifier + number_literal) ))))) , (binary_expression "iVar24 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }" { (expression_statement "dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));" (assignment_expression "dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0))" identifier = (cast_expression "(double)CONCAT44(iVar24,SUB84(dVar57,0))" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar24,SUB84(dVar57,0))" identifier (argument_list "(iVar24,SUB84(dVar57,0))" ( identifier , (call_expression "SUB84(dVar57,0)" identifier (argument_list "(dVar57,0)" ( identifier , number_literal ))) ))))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7888" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(int *)(puVar50 + 0x14c)" * (cast_expression "(int *)(puVar50 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14c)" ( (binary_expression "puVar50 + 0x14c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x153eac);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x153eac)" identifier = (pointer_expression "*(code **)(puVar54 + 0x153eac)" * (cast_expression "(code **)(puVar54 + 0x153eac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153eac)" ( (binary_expression "puVar54 + 0x153eac" identifier + number_literal) ))))) ;) })) (expression_statement "iVar24 = (*pcVar55)(puVar50);" (assignment_expression "iVar24 = (*pcVar55)(puVar50)" identifier = (call_expression "(*pcVar55)(puVar50)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "(puVar50)" ( identifier )))) ;) (expression_statement "iVar32 = *(int *)(puVar50 + 0x136);" (assignment_expression "iVar32 = *(int *)(puVar50 + 0x136)" identifier = (pointer_expression "*(int *)(puVar50 + 0x136)" * (cast_expression "(int *)(puVar50 + 0x136)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x136)" ( (binary_expression "puVar50 + 0x136" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }" { (expression_statement "iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);" (assignment_expression "iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50)" identifier = (call_expression "(**(code **)(puVar54 + 0x1536e8))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1536e8))" ( (pointer_expression "**(code **)(puVar54 + 0x1536e8)" * (pointer_expression "*(code **)(puVar54 + 0x1536e8)" * (cast_expression "(code **)(puVar54 + 0x1536e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1536e8)" ( (binary_expression "puVar54 + 0x1536e8" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier )))) ;) (if_statement "if (iVar24 != 0) goto LAB_00255b3c;" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00255b3c;" goto statement_identifier ;)) (if_statement "if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" if (parenthesized_expression "(iVar32 != 0)" ( (binary_expression "iVar32 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" { (expression_statement "dVar57 = (double)iVar32;" (assignment_expression "dVar57 = (double)iVar32" identifier = (cast_expression "(double)iVar32" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" if (parenthesized_expression "(iVar32 < 0)" ( (binary_expression "iVar32 < 0" identifier < number_literal) )) (compound_statement "{\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" { (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77f4" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (expression_statement "iVar24 = *(int *)(puVar50 + 0x13e);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x13e)" identifier = (pointer_expression "*(int *)(puVar50 + 0x13e)" * (cast_expression "(int *)(puVar50 + 0x13e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x13e)" ( (binary_expression "puVar50 + 0x13e" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" { (expression_statement "dVar57 = (double)iVar24;" (assignment_expression "dVar57 = (double)iVar24" identifier = (cast_expression "(double)iVar24" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" if (parenthesized_expression "(iVar24 < 0)" ( (binary_expression "iVar24 < 0" identifier < number_literal) )) (compound_statement "{\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" { (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77e4" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (expression_statement "iVar24 = *(int *)(puVar50 + 0x138);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x138)" identifier = (pointer_expression "*(int *)(puVar50 + 0x138)" * (cast_expression "(int *)(puVar50 + 0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x138)" ( (binary_expression "puVar50 + 0x138" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" { (expression_statement "dVar57 = (double)iVar24;" (assignment_expression "dVar57 = (double)iVar24" identifier = (cast_expression "(double)iVar24" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" if (parenthesized_expression "(iVar24 < 0)" ( (binary_expression "iVar24 < 0" identifier < number_literal) )) (compound_statement "{\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" { (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77d0" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" if (parenthesized_expression "(*(int *)(puVar50 + 0x13c) != 100)" ( (binary_expression "*(int *)(puVar50 + 0x13c) != 100" (pointer_expression "*(int *)(puVar50 + 0x13c)" * (cast_expression "(int *)(puVar50 + 0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x13c)" ( (binary_expression "puVar50 + 0x13c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" { (expression_statement "dVar57 = (double)*(int *)(puVar50 + 0x13c);" (assignment_expression "dVar57 = (double)*(int *)(puVar50 + 0x13c)" identifier = (cast_expression "(double)*(int *)(puVar50 + 0x13c)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 0x13c)" * (cast_expression "(int *)(puVar50 + 0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x13c)" ( (binary_expression "puVar50 + 0x13c" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x780c" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) }) (else_clause "else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" else (compound_statement "{\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (labeled_statement "LAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);" statement_identifier : (expression_statement "dVar56 = (double)*(int *)(puVar50 + 0x13e);" (assignment_expression "dVar56 = (double)*(int *)(puVar50 + 0x13e)" identifier = (cast_expression "(double)*(int *)(puVar50 + 0x13e)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 0x13e)" * (cast_expression "(int *)(puVar50 + 0x13e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x13e)" ( (binary_expression "puVar50 + 0x13e" identifier + number_literal) )))))) ;)) (if_statement "if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }" if (parenthesized_expression "(*(int *)(puVar50 + 0x13e) < 0)" ( (binary_expression "*(int *)(puVar50 + 0x13e) < 0" (pointer_expression "*(int *)(puVar50 + 0x13e)" * (cast_expression "(int *)(puVar50 + 0x13e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x13e)" ( (binary_expression "puVar50 + 0x13e" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }" { (expression_statement "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar56 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar65 = (double)*(int *)(puVar50 + 0x138);" (assignment_expression "dVar65 = (double)*(int *)(puVar50 + 0x138)" identifier = (cast_expression "(double)*(int *)(puVar50 + 0x138)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 0x138)" * (cast_expression "(int *)(puVar50 + 0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x138)" ( (binary_expression "puVar50 + 0x138" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }" if (parenthesized_expression "(*(int *)(puVar50 + 0x138) < 0)" ( (binary_expression "*(int *)(puVar50 + 0x138) < 0" (pointer_expression "*(int *)(puVar50 + 0x138)" * (cast_expression "(int *)(puVar50 + 0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x138)" ( (binary_expression "puVar50 + 0x138" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }" { (expression_statement "dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar65 = dVar65 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar65 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (if_statement "if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }" if (parenthesized_expression "(iVar32 == 0)" ( (binary_expression "iVar32 == 0" identifier == number_literal) )) (compound_statement "{\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }" { (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7870" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "dVar57 = dVar56;" (assignment_expression "dVar57 = dVar56" identifier = identifier) ;) (expression_statement "dVar56 = dVar65;" (assignment_expression "dVar56 = dVar65" identifier = identifier) ;) }) (else_clause "else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }" else (compound_statement "{\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }" { (expression_statement "dVar57 = (double)iVar32;" (assignment_expression "dVar57 = (double)iVar32" identifier = (cast_expression "(double)iVar32" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" if (parenthesized_expression "(iVar32 < 0)" ( (binary_expression "iVar32 < 0" identifier < number_literal) )) (compound_statement "{\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" { (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7838" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) }))) (if_statement "if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x130) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x130) != 0" (pointer_expression "*(int *)(puVar50 + 0x130)" * (cast_expression "(int *)(puVar50 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x130)" ( (binary_expression "puVar50 + 0x130" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x21)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x21)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77c0" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x134) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x134) != 0" (pointer_expression "*(int *)(puVar50 + 0x134)" * (cast_expression "(int *)(puVar50 + 0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x134)" ( (binary_expression "puVar50 + 0x134" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x15)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x15)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77b4" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0xfc) != 0)" ( (binary_expression "*(int *)(puVar50 + 0xfc) != 0" (pointer_expression "*(int *)(puVar50 + 0xfc)" * (cast_expression "(int *)(puVar50 + 0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xfc)" ( (binary_expression "puVar50 + 0xfc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x23)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x23)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77a8" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (expression_statement "dVar65 = *(double *)(puVar50 + 200);" (assignment_expression "dVar65 = *(double *)(puVar50 + 200)" identifier = (pointer_expression "*(double *)(puVar50 + 200)" * (cast_expression "(double *)(puVar50 + 200)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 200)" ( (binary_expression "puVar50 + 200" identifier + number_literal) ))))) ;) (if_statement "if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }" if (parenthesized_expression "(dVar65 != 0.0)" ( (binary_expression "dVar65 != 0.0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }" { (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7790" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "dVar57 = dVar65;" (assignment_expression "dVar57 = dVar65" identifier = identifier) ;) })) (if_statement "if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(*(double *)(puVar50 + 0xf0) != 0.0)" ( (binary_expression "*(double *)(puVar50 + 0xf0) != 0.0" (pointer_expression "*(double *)(puVar50 + 0xf0)" * (cast_expression "(double *)(puVar50 + 0xf0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xf0)" ( (binary_expression "puVar50 + 0xf0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7784" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "dVar56 = *(double *)(puVar50 + 0xf4);" (assignment_expression "dVar56 = *(double *)(puVar50 + 0xf4)" identifier = (pointer_expression "*(double *)(puVar50 + 0xf4)" * (cast_expression "(double *)(puVar50 + 0xf4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xf4)" ( (binary_expression "puVar50 + 0xf4" identifier + number_literal) ))))) ;) (expression_statement "dVar57 = *(double *)(puVar50 + 0xf0);" (assignment_expression "dVar57 = *(double *)(puVar50 + 0xf0)" identifier = (pointer_expression "*(double *)(puVar50 + 0xf0)" * (cast_expression "(double *)(puVar50 + 0xf0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xf0)" ( (binary_expression "puVar50 + 0xf0" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7748" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 8) != 0)" ( (binary_expression "*(int *)(puVar50 + 8) != 0" (pointer_expression "*(int *)(puVar50 + 8)" * (cast_expression "(int *)(puVar50 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 8)" ( (binary_expression "puVar50 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x36)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x36)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    )" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    )" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7734" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0xfe) == 0)" ( (binary_expression "*(int *)(puVar50 + 0xfe) == 0" (pointer_expression "*(int *)(puVar50 + 0xfe)" * (cast_expression "(int *)(puVar50 + 0xfe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xfe)" ( (binary_expression "puVar50 + 0xfe" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }" { (labeled_statement "LAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);" statement_identifier : (expression_statement "puVar8 = *(ushort **)(puVar50 + 0x102);" (assignment_expression "puVar8 = *(ushort **)(puVar50 + 0x102)" identifier = (pointer_expression "*(ushort **)(puVar50 + 0x102)" * (cast_expression "(ushort **)(puVar50 + 0x102)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar50 + 0x102)" ( (binary_expression "puVar50 + 0x102" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }" else (compound_statement "{\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }" { (expression_statement "(**(code **)(puVar54 + 0x1538c8))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x1538c8))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1538c8))" ( (pointer_expression "**(code **)(puVar54 + 0x1538c8)" * (pointer_expression "*(code **)(puVar54 + 0x1538c8)" * (cast_expression "(code **)(puVar54 + 0x1538c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1538c8)" ( (binary_expression "puVar54 + 0x1538c8" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))) ;) (expression_statement "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);" (assignment_expression "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50)" identifier = (call_expression "(**(code **)(puVar54 + 0x153948))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153948))" ( (pointer_expression "**(code **)(puVar54 + 0x153948)" * (pointer_expression "*(code **)(puVar54 + 0x153948)" * (cast_expression "(code **)(puVar54 + 0x153948)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153948)" ( (binary_expression "puVar54 + 0x153948" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier )))) ;) (if_statement "if (iVar24 == 0) goto LAB_00255c28;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00255c28;" goto statement_identifier ;)) (expression_statement "iVar32 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar32 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (do_statement "do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);" do (compound_statement "{\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          }" { (expression_statement "iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);" (assignment_expression "iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24)" identifier = (call_expression "(**(code **)(puVar54 + 0x153e14))(puVar50,iVar24)" (parenthesized_expression "(**(code **)(puVar54 + 0x153e14))" ( (pointer_expression "**(code **)(puVar54 + 0x153e14)" * (pointer_expression "*(code **)(puVar54 + 0x153e14)" * (cast_expression "(code **)(puVar54 + 0x153e14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153e14)" ( (binary_expression "puVar54 + 0x153e14" identifier + number_literal) ))))) )) (argument_list "(puVar50,iVar24)" ( identifier , identifier )))) ;) (if_statement "if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }" if (parenthesized_expression "(iVar34 != 0)" ( (binary_expression "iVar34 != 0" identifier != number_literal) )) (compound_statement "{\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }" { (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,iVar32 + -0x7724,iVar24)" ( identifier , number_literal , (binary_expression "iVar32 + -0x7724" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (expression_statement "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);" (assignment_expression "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50)" identifier = (call_expression "(**(code **)(puVar54 + 0x153948))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153948))" ( (pointer_expression "**(code **)(puVar54 + 0x153948)" * (pointer_expression "*(code **)(puVar54 + 0x153948)" * (cast_expression "(code **)(puVar54 + 0x153948)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153948)" ( (binary_expression "puVar54 + 0x153948" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) ;) (expression_statement "puVar8 = *(ushort **)(puVar50 + 0x102);" (assignment_expression "puVar8 = *(ushort **)(puVar50 + 0x102)" identifier = (pointer_expression "*(ushort **)(puVar50 + 0x102)" * (cast_expression "(ushort **)(puVar50 + 0x102)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar50 + 0x102)" ( (binary_expression "puVar50 + 0x102" identifier + number_literal) ))))) ;) }))) (if_statement "if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(puVar8 != (ushort *)0x0)" ( (binary_expression "puVar8 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7718" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1536d0))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x1536d0))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1536d0))" ( (pointer_expression "**(code **)(puVar54 + 0x1536d0)" * (pointer_expression "*(code **)(puVar54 + 0x1536d0)" * (cast_expression "(code **)(puVar54 + 0x1536d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1536d0)" ( (binary_expression "puVar54 + 0x1536d0" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))) ;) (expression_statement "puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);" (assignment_expression "puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50)" identifier = (cast_expression "(ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar54 + 0x1542fc))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1542fc))" ( (pointer_expression "**(code **)(puVar54 + 0x1542fc)" * (pointer_expression "*(code **)(puVar54 + 0x1542fc)" * (cast_expression "(code **)(puVar54 + 0x1542fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1542fc)" ( (binary_expression "puVar54 + 0x1542fc" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))))) ;) (if_statement "if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }" if (parenthesized_expression "(puVar9 != (ushort *)0x0)" ( (binary_expression "puVar9 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }" { (expression_statement "iVar24 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar24 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00255c90:\n          puVar8 = puVar9;" statement_identifier : (expression_statement "puVar8 = puVar9;" (assignment_expression "puVar8 = puVar9" identifier = identifier) ;)) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9)" ( identifier , number_literal , (binary_expression "iVar24 + -0x7c80" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);" (assignment_expression "pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38)" identifier = (cast_expression "(byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38)" (parenthesized_expression "(**(code **)(puVar54 + 0x153e38))" ( (pointer_expression "**(code **)(puVar54 + 0x153e38)" * (pointer_expression "*(code **)(puVar54 + 0x153e38)" * (cast_expression "(code **)(puVar54 + 0x153e38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153e38)" ( (binary_expression "puVar54 + 0x153e38" identifier + number_literal) ))))) )) (argument_list "(puVar50,puVar9,puVar38)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }" if (parenthesized_expression "(pbVar25 != (byte *)0x0)" ( (binary_expression "pbVar25 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }" { (expression_statement "iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);" (assignment_expression "iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25)" identifier = (call_expression "(**(code **)(puVar54 + 0x153d74))(pbVar25)" (parenthesized_expression "(**(code **)(puVar54 + 0x153d74))" ( (pointer_expression "**(code **)(puVar54 + 0x153d74)" * (pointer_expression "*(code **)(puVar54 + 0x153d74)" * (cast_expression "(code **)(puVar54 + 0x153d74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153d74)" ( (binary_expression "puVar54 + 0x153d74" identifier + number_literal) ))))) )) (argument_list "(pbVar25)" ( identifier )))) ;) (if_statement "if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }" if (parenthesized_expression "(iVar32 != 0)" ( (binary_expression "iVar32 != 0" identifier != number_literal) )) (compound_statement "{\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }" { (expression_statement "piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();" (assignment_expression "piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))()" identifier = (cast_expression "(int *)(**(code **)(puVar54 + 0x153e70))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar54 + 0x153e70))()" (parenthesized_expression "(**(code **)(puVar54 + 0x153e70))" ( (pointer_expression "**(code **)(puVar54 + 0x153e70)" * (pointer_expression "*(code **)(puVar54 + 0x153e70)" * (cast_expression "(code **)(puVar54 + 0x153e70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153e70)" ( (binary_expression "puVar54 + 0x153e70" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar34 = 0;" (assignment_expression "iVar34 = 0" identifier = number_literal) ;) (expression_statement "pbVar53 = pbVar25;" (assignment_expression "pbVar53 = pbVar25" identifier = identifier) ;) (do_statement "do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);" do (compound_statement "{\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              }" { (expression_statement "iVar39 = iVar34 + 1;" (assignment_expression "iVar39 = iVar34 + 1" identifier = (binary_expression "iVar34 + 1" identifier + number_literal)) ;) (if_statement "if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }" if (parenthesized_expression "((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0)" ( (binary_expression "(*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar26 + (uint)*pbVar53 * 2)" * (cast_expression "(ushort *)(*piVar26 + (uint)*pbVar53 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar26 + (uint)*pbVar53 * 2)" ( (binary_expression "*piVar26 + (uint)*pbVar53 * 2" (pointer_expression "*piVar26" * identifier) + (binary_expression "(uint)*pbVar53 * 2" (binary_expression "(uint)*pbVar53" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }" { (if_statement "if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }" if (parenthesized_expression "(iVar34 != iVar32)" ( (binary_expression "iVar34 != iVar32" identifier != identifier) )) (compound_statement "{\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }" { (expression_statement "pbVar53 = pbVar25 + iVar32;" (assignment_expression "pbVar53 = pbVar25 + iVar32" identifier = (binary_expression "pbVar25 + iVar32" identifier + identifier)) ;) (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7b)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,0x7b)" ( identifier , number_literal ))) ;) (expression_statement "iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);" (assignment_expression "iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d)" identifier = (call_expression "(**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d)" (parenthesized_expression "(**(code **)(puVar54 + 0x1541c4))" ( (pointer_expression "**(code **)(puVar54 + 0x1541c4)" * (pointer_expression "*(code **)(puVar54 + 0x1541c4)" * (cast_expression "(code **)(puVar54 + 0x1541c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1541c4)" ( (binary_expression "puVar54 + 0x1541c4" identifier + number_literal) ))))) )) (argument_list "(pbVar25,0x7d)" ( identifier , number_literal )))) ;) (if_statement "if (iVar34 != 0) goto LAB_00255f3c;" if (parenthesized_expression "(iVar34 != 0)" ( (binary_expression "iVar34 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00255f3c;" goto statement_identifier ;)) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1543d0);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1543d0)" identifier = (pointer_expression "*(code **)(puVar54 + 0x1543d0)" * (cast_expression "(code **)(puVar54 + 0x1543d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1543d0)" ( (binary_expression "puVar54 + 0x1543d0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00255fc0;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "pbVar53 = pbVar53 + 1;" (assignment_expression "pbVar53 = pbVar53 + 1" identifier = (binary_expression "pbVar53 + 1" identifier + number_literal)) ;) (expression_statement "iVar34 = iVar39;" (assignment_expression "iVar34 = iVar39" identifier = identifier) ;) }) while (parenthesized_expression "(iVar39 != iVar32)" ( (binary_expression "iVar39 != iVar32" identifier != identifier) )) ;) (expression_statement "(**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);" (call_expression "(**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25)" (parenthesized_expression "(**(code **)(puVar54 + 0x1543d0))" ( (pointer_expression "**(code **)(puVar54 + 0x1543d0)" * (pointer_expression "*(code **)(puVar54 + 0x1543d0)" * (cast_expression "(code **)(puVar54 + 0x1543d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1543d0)" ( (binary_expression "puVar54 + 0x1543d0" identifier + number_literal) ))))) )) (argument_list "(puVar50,iVar32,pbVar25)" ( identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_00255d60;" goto statement_identifier ;) })) (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7b)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,0x7b)" ( identifier , number_literal ))) ;) (expression_statement "iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);" (assignment_expression "iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d)" identifier = (call_expression "(**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d)" (parenthesized_expression "(**(code **)(puVar54 + 0x1541c4))" ( (pointer_expression "**(code **)(puVar54 + 0x1541c4)" * (pointer_expression "*(code **)(puVar54 + 0x1541c4)" * (cast_expression "(code **)(puVar54 + 0x1541c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1541c4)" ( (binary_expression "puVar54 + 0x1541c4" identifier + number_literal) ))))) )) (argument_list "(pbVar25,0x7d)" ( identifier , number_literal )))) ;) (if_statement "if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }" if (parenthesized_expression "(iVar34 == 0)" ( (binary_expression "iVar34 == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }" { (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1543d0);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1543d0)" identifier = (pointer_expression "*(code **)(puVar54 + 0x1543d0)" * (cast_expression "(code **)(puVar54 + 0x1543d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1543d0)" ( (binary_expression "puVar54 + 0x1543d0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);" statement_identifier : (expression_statement "(*pcVar55)(puVar50,iVar32,pbVar25);" (call_expression "(*pcVar55)(puVar50,iVar32,pbVar25)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "(puVar50,iVar32,pbVar25)" ( identifier , identifier , identifier ))) ;)) (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7d)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,0x7d)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_00255d60;" goto statement_identifier ;) })) (goto_statement "goto LAB_00255f78;" goto statement_identifier ;) })) (goto_statement "goto LAB_00255d60;" goto statement_identifier ;) })) (labeled_statement "LAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);" statement_identifier : (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,iVar22 + -0x770c)" ( identifier , (binary_expression "iVar22 + -0x770c" identifier + number_literal) ))) ;)) (if_statement "if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x102) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x102) != 0" (pointer_expression "*(int *)(puVar50 + 0x102)" * (cast_expression "(int *)(puVar50 + 0x102)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x102)" ( (binary_expression "puVar50 + 0x102" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }" { (if_statement "if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }" if (parenthesized_expression "(*(int *)(puVar50 + 0x104) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x104) != 0" (pointer_expression "*(int *)(puVar50 + 0x104)" * (cast_expression "(int *)(puVar50 + 0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x104)" ( (binary_expression "puVar50 + 0x104" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }" { (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,0)" ( identifier , number_literal ))) ;) })) (if_statement "if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0xfe) == 0)" ( (binary_expression "*(int *)(puVar50 + 0xfe) == 0" (pointer_expression "*(int *)(puVar50 + 0xfe)" * (cast_expression "(int *)(puVar50 + 0xfe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xfe)" ( (binary_expression "puVar50 + 0xfe" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }" { (if_statement "if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }" if (parenthesized_expression "(*(int *)puVar50 == 2)" ( (binary_expression "*(int *)puVar50 == 2" (pointer_expression "*(int *)puVar50" * (cast_expression "(int *)puVar50" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }" { (labeled_statement "LAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;" statement_identifier : (expression_statement "uVar13 = (uint)(iVar46 * 3) >> 3;" (assignment_expression "uVar13 = (uint)(iVar46 * 3) >> 3" identifier = (binary_expression "(uint)(iVar46 * 3) >> 3" (call_expression "(uint)(iVar46 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar46 * 3)" ( (binary_expression "iVar46 * 3" identifier * number_literal) ))) >> number_literal)) ;)) (expression_statement "puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);" (assignment_expression "puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13)" identifier = (cast_expression "(undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13)" (parenthesized_expression "(**(code **)(puVar54 + 0x153f48))" ( (pointer_expression "**(code **)(puVar54 + 0x153f48)" * (pointer_expression "*(code **)(puVar54 + 0x153f48)" * (cast_expression "(code **)(puVar54 + 0x153f48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153f48)" ( (binary_expression "puVar54 + 0x153f48" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar50 + 0x12),uVar13)" ( (pointer_expression "*(undefined4 *)(puVar50 + 0x12)" * (cast_expression "(undefined4 *)(puVar50 + 0x12)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12)" ( (binary_expression "puVar50 + 0x12" identifier + number_literal) )))) , identifier ))))) ;) (if_statement "if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;" if (parenthesized_expression "(puVar27 == (undefined1 *)0x0)" ( (binary_expression "puVar27 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025569c;" goto statement_identifier ;)) (expression_statement "iVar24 = *(int *)(puVar50 + 0x12);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x12)" identifier = (pointer_expression "*(int *)(puVar50 + 0x12)" * (cast_expression "(int *)(puVar50 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12)" ( (binary_expression "puVar50 + 0x12" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }" if (parenthesized_expression "(0 < iVar24)" ( (binary_expression "0 < iVar24" number_literal < identifier) )) (compound_statement "{\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }" { (expression_statement "iVar32 = 0;" (assignment_expression "iVar32 = 0" identifier = number_literal) ;) (expression_statement "iVar43 = *(int *)(puVar54 + 0x153324);" (assignment_expression "iVar43 = *(int *)(puVar54 + 0x153324)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153324)" * (cast_expression "(int *)(puVar54 + 0x153324)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153324)" ( (binary_expression "puVar54 + 0x153324" identifier + number_literal) ))))) ;) (expression_statement "iVar34 = 0;" (assignment_expression "iVar34 = 0" identifier = number_literal) ;) (expression_statement "dVar65 = *(double *)(iVar51 + 0x1410);" (assignment_expression "dVar65 = *(double *)(iVar51 + 0x1410)" identifier = (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "iVar42 = *(int *)(puVar54 + 0x15331c);" (assignment_expression "iVar42 = *(int *)(puVar54 + 0x15331c)" identifier = (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) ))))) ;) (expression_statement "dVar57 = *(double *)(iVar43 + -0x5b00);" (assignment_expression "dVar57 = *(double *)(iVar43 + -0x5b00)" identifier = (pointer_expression "*(double *)(iVar43 + -0x5b00)" * (cast_expression "(double *)(iVar43 + -0x5b00)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar43 + -0x5b00)" ( (binary_expression "iVar43 + -0x5b00" identifier + number_literal) ))))) ;) (expression_statement "iVar41 = *(int *)(puVar54 + 0x153324);" (assignment_expression "iVar41 = *(int *)(puVar54 + 0x153324)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153324)" * (cast_expression "(int *)(puVar54 + 0x153324)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153324)" ( (binary_expression "puVar54 + 0x153324" identifier + number_literal) ))))) ;) (expression_statement "iVar40 = *(int *)(puVar54 + 0x153324);" (assignment_expression "iVar40 = *(int *)(puVar54 + 0x153324)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153324)" * (cast_expression "(int *)(puVar54 + 0x153324)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153324)" ( (binary_expression "puVar54 + 0x153324" identifier + number_literal) ))))) ;) (expression_statement "iVar39 = *(int *)(puVar54 + 0x153324);" (assignment_expression "iVar39 = *(int *)(puVar54 + 0x153324)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153324)" * (cast_expression "(int *)(puVar54 + 0x153324)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153324)" ( (binary_expression "puVar54 + 0x153324" identifier + number_literal) ))))) ;) (expression_statement "dVar56 = *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar56 = *(double *)(iVar49 + 0x1400)" identifier = (pointer_expression "*(double *)(iVar49 + 0x1400)" * (cast_expression "(double *)(iVar49 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1400)" ( (binary_expression "iVar49 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "fVar62 = *(float *)(iVar42 + 0x1a50);" (assignment_expression "fVar62 = *(float *)(iVar42 + 0x1a50)" identifier = (pointer_expression "*(float *)(iVar42 + 0x1a50)" * (cast_expression "(float *)(iVar42 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar42 + 0x1a50)" ( (binary_expression "iVar42 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "dVar63 = *(double *)(iVar41 + -0x5af8);" (assignment_expression "dVar63 = *(double *)(iVar41 + -0x5af8)" identifier = (pointer_expression "*(double *)(iVar41 + -0x5af8)" * (cast_expression "(double *)(iVar41 + -0x5af8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar41 + -0x5af8)" ( (binary_expression "iVar41 + -0x5af8" identifier + number_literal) ))))) ;) (expression_statement "dVar61 = *(double *)(iVar40 + -0x5af0);" (assignment_expression "dVar61 = *(double *)(iVar40 + -0x5af0)" identifier = (pointer_expression "*(double *)(iVar40 + -0x5af0)" * (cast_expression "(double *)(iVar40 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar40 + -0x5af0)" ( (binary_expression "iVar40 + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "dVar64 = *(double *)(iVar39 + -0x5ae8);" (assignment_expression "dVar64 = *(double *)(iVar39 + -0x5ae8)" identifier = (pointer_expression "*(double *)(iVar39 + -0x5ae8)" * (cast_expression "(double *)(iVar39 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + -0x5ae8)" ( (binary_expression "iVar39 + -0x5ae8" identifier + number_literal) ))))) ;) (expression_statement "puVar28 = puVar27;" (assignment_expression "puVar28 = puVar27" identifier = identifier) ;) (do_statement "do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);" do (compound_statement "{\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              }" { (if_statement "if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar46 == 0x10)" ( (binary_expression "iVar46 == 0x10" identifier == number_literal) )) (compound_statement "{\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }" { (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x28" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }" { (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) }) (else_clause "else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" else (if_statement "if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" if (parenthesized_expression "(fVar59 < *(float *)(iVar42 + 0x1a50))" ( (binary_expression "fVar59 < *(float *)(iVar42 + 0x1a50)" identifier < (pointer_expression "*(float *)(iVar42 + 0x1a50)" * (cast_expression "(float *)(iVar42 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar42 + 0x1a50)" ( (binary_expression "iVar42 + 0x1a50" identifier + number_literal) ))))) )) (compound_statement "{\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }" { (expression_statement "dVar58 = (double)fVar59 + dVar56;" (assignment_expression "dVar58 = (double)fVar59 + dVar56" identifier = (binary_expression "(double)fVar59 + dVar56" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" if (parenthesized_expression "(dVar58 < dVar65)" ( (binary_expression "dVar58 < dVar65" identifier < identifier) )) (compound_statement "{\n                      uVar60 = (undefined2)(int)dVar58;\n                    }" { (expression_statement "uVar60 = (undefined2)(int)dVar58;" (assignment_expression "uVar60 = (undefined2)(int)dVar58" identifier = (cast_expression "(undefined2)(int)dVar58" ( (type_descriptor "undefined2" type_identifier) ) (cast_expression "(int)dVar58" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" else (compound_statement "{\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" { (expression_statement "uVar60 = (undefined2)(int)(dVar58 - dVar65);" (assignment_expression "uVar60 = (undefined2)(int)(dVar58 - dVar65)" identifier = (call_expression "(undefined2)(int)(dVar58 - dVar65)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar58 - dVar65)" ( (binary_expression "dVar58 - dVar65" identifier - identifier) )))) ;) }))) (expression_statement "uVar45 = (undefined1)((ushort)uVar60 >> 8);" (assignment_expression "uVar45 = (undefined1)((ushort)uVar60 >> 8)" identifier = (call_expression "(undefined1)((ushort)uVar60 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ushort)uVar60 >> 8)" ( (binary_expression "(ushort)uVar60 >> 8" (cast_expression "(ushort)uVar60" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar44 = (undefined1)uVar60;" (assignment_expression "uVar44 = (undefined1)uVar60" identifier = (cast_expression "(undefined1)uVar60" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" else (compound_statement "{\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" { (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" identifier = number_literal) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) }))))) (expression_statement "*puVar28 = uVar45;" (assignment_expression "*puVar28 = uVar45" (pointer_expression "*puVar28" * identifier) = identifier) ;) (expression_statement "puVar28[1] = uVar44;" (assignment_expression "puVar28[1] = uVar44" (subscript_expression "puVar28[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x30" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }" { (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) }) (else_clause "else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" else (if_statement "if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" if (parenthesized_expression "(fVar59 < *(float *)(iVar42 + 0x1a50))" ( (binary_expression "fVar59 < *(float *)(iVar42 + 0x1a50)" identifier < (pointer_expression "*(float *)(iVar42 + 0x1a50)" * (cast_expression "(float *)(iVar42 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar42 + 0x1a50)" ( (binary_expression "iVar42 + 0x1a50" identifier + number_literal) ))))) )) (compound_statement "{\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }" { (expression_statement "dVar58 = (double)fVar59 + dVar56;" (assignment_expression "dVar58 = (double)fVar59 + dVar56" identifier = (binary_expression "(double)fVar59 + dVar56" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" if (parenthesized_expression "(dVar58 < dVar65)" ( (binary_expression "dVar58 < dVar65" identifier < identifier) )) (compound_statement "{\n                      uVar60 = (undefined2)(int)dVar58;\n                    }" { (expression_statement "uVar60 = (undefined2)(int)dVar58;" (assignment_expression "uVar60 = (undefined2)(int)dVar58" identifier = (cast_expression "(undefined2)(int)dVar58" ( (type_descriptor "undefined2" type_identifier) ) (cast_expression "(int)dVar58" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" else (compound_statement "{\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" { (expression_statement "uVar60 = (undefined2)(int)(dVar58 - dVar65);" (assignment_expression "uVar60 = (undefined2)(int)(dVar58 - dVar65)" identifier = (call_expression "(undefined2)(int)(dVar58 - dVar65)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar58 - dVar65)" ( (binary_expression "dVar58 - dVar65" identifier - identifier) )))) ;) }))) (expression_statement "uVar45 = (undefined1)((ushort)uVar60 >> 8);" (assignment_expression "uVar45 = (undefined1)((ushort)uVar60 >> 8)" identifier = (call_expression "(undefined1)((ushort)uVar60 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ushort)uVar60 >> 8)" ( (binary_expression "(ushort)uVar60 >> 8" (cast_expression "(ushort)uVar60" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar44 = (undefined1)uVar60;" (assignment_expression "uVar44 = (undefined1)uVar60" identifier = (cast_expression "(undefined1)uVar60" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" else (compound_statement "{\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" { (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" identifier = number_literal) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) }))))) (expression_statement "puVar28[2] = uVar45;" (assignment_expression "puVar28[2] = uVar45" (subscript_expression "puVar28[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[3] = uVar44;" (assignment_expression "puVar28[3] = uVar44" (subscript_expression "puVar28[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x38" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }" { (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) }) (else_clause "else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" else (if_statement "if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" if (parenthesized_expression "(fVar59 < fVar62)" ( (binary_expression "fVar59 < fVar62" identifier < identifier) )) (compound_statement "{\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }" { (expression_statement "dVar58 = (double)fVar59 + dVar67;" (assignment_expression "dVar58 = (double)fVar59 + dVar67" identifier = (binary_expression "(double)fVar59 + dVar67" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }" if (parenthesized_expression "(dVar58 < dVar66)" ( (binary_expression "dVar58 < dVar66" identifier < identifier) )) (compound_statement "{\n                      uVar60 = (undefined2)(int)dVar58;\n                    }" { (expression_statement "uVar60 = (undefined2)(int)dVar58;" (assignment_expression "uVar60 = (undefined2)(int)dVar58" identifier = (cast_expression "(undefined2)(int)dVar58" ( (type_descriptor "undefined2" type_identifier) ) (cast_expression "(int)dVar58" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }" else (compound_statement "{\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }" { (expression_statement "uVar60 = (undefined2)(int)(dVar58 - dVar66);" (assignment_expression "uVar60 = (undefined2)(int)(dVar58 - dVar66)" identifier = (call_expression "(undefined2)(int)(dVar58 - dVar66)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar58 - dVar66)" ( (binary_expression "dVar58 - dVar66" identifier - identifier) )))) ;) }))) (expression_statement "uVar45 = (undefined1)((ushort)uVar60 >> 8);" (assignment_expression "uVar45 = (undefined1)((ushort)uVar60 >> 8)" identifier = (call_expression "(undefined1)((ushort)uVar60 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ushort)uVar60 >> 8)" ( (binary_expression "(ushort)uVar60 >> 8" (cast_expression "(ushort)uVar60" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar44 = (undefined1)uVar60;" (assignment_expression "uVar44 = (undefined1)uVar60" identifier = (cast_expression "(undefined1)uVar60" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" else (compound_statement "{\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" { (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" identifier = number_literal) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) }))))) (expression_statement "puVar28[4] = uVar45;" (assignment_expression "puVar28[4] = uVar45" (subscript_expression "puVar28[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29 = puVar28 + 6;" (assignment_expression "puVar29 = puVar28 + 6" identifier = (binary_expression "puVar28 + 6" identifier + number_literal)) ;) (expression_statement "puVar28[5] = uVar44;" (assignment_expression "puVar28[5] = uVar44" (subscript_expression "puVar28[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }" else (if_statement "if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar46 == 0x20)" ( (binary_expression "iVar46 == 0x20" identifier == number_literal) )) (compound_statement "{\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }" { (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x28" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }" { (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" identifier = number_literal) ;) (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" else (compound_statement "{\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" { (expression_statement "dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);" (assignment_expression "dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00)" identifier = (binary_expression "(double)fVar59 * *(double *)(iVar43 + -0x5b00)" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(iVar43 + -0x5b00)" * (cast_expression "(double *)(iVar43 + -0x5b00)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar43 + -0x5b00)" ( (binary_expression "iVar43 + -0x5b00" identifier + number_literal) )))))) ;) (expression_statement "uVar37 = 0xff;" (assignment_expression "uVar37 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" if (parenthesized_expression "(dVar58 < *(double *)(iVar41 + -0x5af8))" ( (binary_expression "dVar58 < *(double *)(iVar41 + -0x5af8)" identifier < (pointer_expression "*(double *)(iVar41 + -0x5af8)" * (cast_expression "(double *)(iVar41 + -0x5af8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar41 + -0x5af8)" ( (binary_expression "iVar41 + -0x5af8" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }" { (expression_statement "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400)" identifier = (binary_expression "dVar58 + *(double *)(iVar49 + 0x1400)" identifier + (pointer_expression "*(double *)(iVar49 + 0x1400)" * (cast_expression "(double *)(iVar49 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1400)" ( (binary_expression "iVar49 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" if (parenthesized_expression "(dVar58 < *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 < *(double *)(iVar51 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n                        uVar36 = (uint)dVar58;\n                      }" { (expression_statement "uVar36 = (uint)dVar58;" (assignment_expression "uVar36 = (uint)dVar58" identifier = (cast_expression "(uint)dVar58" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" else (compound_statement "{\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" { (expression_statement "uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;" (assignment_expression "uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar58 - *(double *)(iVar51 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar58 - *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 - *(double *)(iVar51 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "uVar52 = (undefined1)(uVar36 >> 0x18);" (assignment_expression "uVar52 = (undefined1)(uVar36 >> 0x18)" identifier = (call_expression "(undefined1)(uVar36 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 0x18)" ( (binary_expression "uVar36 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar45 = (undefined1)(uVar36 >> 0x10);" (assignment_expression "uVar45 = (undefined1)(uVar36 >> 0x10)" identifier = (call_expression "(undefined1)(uVar36 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 0x10)" ( (binary_expression "uVar36 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar44 = (undefined1)(uVar36 >> 8);" (assignment_expression "uVar44 = (undefined1)(uVar36 >> 8)" identifier = (call_expression "(undefined1)(uVar36 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 8)" ( (binary_expression "uVar36 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uVar37 = (undefined1)uVar36;" (assignment_expression "uVar37 = (undefined1)uVar36" identifier = (cast_expression "(undefined1)uVar36" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" else (compound_statement "{\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" { (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" identifier = number_literal) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "*puVar28 = uVar52;" (assignment_expression "*puVar28 = uVar52" (pointer_expression "*puVar28" * identifier) = identifier) ;) (expression_statement "puVar28[1] = uVar45;" (assignment_expression "puVar28[1] = uVar45" (subscript_expression "puVar28[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[2] = uVar44;" (assignment_expression "puVar28[2] = uVar44" (subscript_expression "puVar28[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[3] = uVar37;" (assignment_expression "puVar28[3] = uVar37" (subscript_expression "puVar28[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x30" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }" { (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" identifier = number_literal) ;) (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" else (compound_statement "{\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" { (expression_statement "dVar58 = (double)fVar59 * dVar57;" (assignment_expression "dVar58 = (double)fVar59 * dVar57" identifier = (binary_expression "(double)fVar59 * dVar57" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "uVar37 = 0xff;" (assignment_expression "uVar37 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" if (parenthesized_expression "(dVar58 < *(double *)(iVar41 + -0x5af8))" ( (binary_expression "dVar58 < *(double *)(iVar41 + -0x5af8)" identifier < (pointer_expression "*(double *)(iVar41 + -0x5af8)" * (cast_expression "(double *)(iVar41 + -0x5af8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar41 + -0x5af8)" ( (binary_expression "iVar41 + -0x5af8" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }" { (expression_statement "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400)" identifier = (binary_expression "dVar58 + *(double *)(iVar49 + 0x1400)" identifier + (pointer_expression "*(double *)(iVar49 + 0x1400)" * (cast_expression "(double *)(iVar49 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1400)" ( (binary_expression "iVar49 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" if (parenthesized_expression "(dVar58 < *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 < *(double *)(iVar51 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n                        uVar36 = (uint)dVar58;\n                      }" { (expression_statement "uVar36 = (uint)dVar58;" (assignment_expression "uVar36 = (uint)dVar58" identifier = (cast_expression "(uint)dVar58" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" else (compound_statement "{\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" { (expression_statement "uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;" (assignment_expression "uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar58 - *(double *)(iVar51 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar58 - *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 - *(double *)(iVar51 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "uVar52 = (undefined1)(uVar36 >> 0x18);" (assignment_expression "uVar52 = (undefined1)(uVar36 >> 0x18)" identifier = (call_expression "(undefined1)(uVar36 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 0x18)" ( (binary_expression "uVar36 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar45 = (undefined1)(uVar36 >> 0x10);" (assignment_expression "uVar45 = (undefined1)(uVar36 >> 0x10)" identifier = (call_expression "(undefined1)(uVar36 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 0x10)" ( (binary_expression "uVar36 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar44 = (undefined1)(uVar36 >> 8);" (assignment_expression "uVar44 = (undefined1)(uVar36 >> 8)" identifier = (call_expression "(undefined1)(uVar36 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 8)" ( (binary_expression "uVar36 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uVar37 = (undefined1)uVar36;" (assignment_expression "uVar37 = (undefined1)uVar36" identifier = (cast_expression "(undefined1)uVar36" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" else (compound_statement "{\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" { (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" identifier = number_literal) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "puVar28[4] = uVar52;" (assignment_expression "puVar28[4] = uVar52" (subscript_expression "puVar28[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[5] = uVar45;" (assignment_expression "puVar28[5] = uVar45" (subscript_expression "puVar28[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[6] = uVar44;" (assignment_expression "puVar28[6] = uVar44" (subscript_expression "puVar28[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[7] = uVar37;" (assignment_expression "puVar28[7] = uVar37" (subscript_expression "puVar28[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x38" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }" { (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" identifier = number_literal) ;) (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" else (compound_statement "{\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" { (expression_statement "dVar58 = (double)fVar59 * dVar57;" (assignment_expression "dVar58 = (double)fVar59 * dVar57" identifier = (binary_expression "(double)fVar59 * dVar57" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" if (parenthesized_expression "(dVar58 < dVar63)" ( (binary_expression "dVar58 < dVar63" identifier < identifier) )) (compound_statement "{\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }" { (expression_statement "dVar58 = dVar58 + dVar56;" (assignment_expression "dVar58 = dVar58 + dVar56" identifier = (binary_expression "dVar58 + dVar56" identifier + identifier)) ;) (if_statement "if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }" if (parenthesized_expression "(dVar58 < dVar65)" ( (binary_expression "dVar58 < dVar65" identifier < identifier) )) (compound_statement "{\n                        uVar36 = (uint)dVar58;\n                      }" { (expression_statement "uVar36 = (uint)dVar58;" (assignment_expression "uVar36 = (uint)dVar58" identifier = (cast_expression "(uint)dVar58" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }" else (compound_statement "{\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }" { (expression_statement "uVar36 = (int)(dVar58 - dVar65) | 0x80000000;" (assignment_expression "uVar36 = (int)(dVar58 - dVar65) | 0x80000000" identifier = (binary_expression "(int)(dVar58 - dVar65) | 0x80000000" (cast_expression "(int)(dVar58 - dVar65)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar58 - dVar65)" ( (binary_expression "dVar58 - dVar65" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "uVar52 = (undefined1)uVar36;" (assignment_expression "uVar52 = (undefined1)uVar36" identifier = (cast_expression "(undefined1)uVar36" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uVar45 = (undefined1)(uVar36 >> 8);" (assignment_expression "uVar45 = (undefined1)(uVar36 >> 8)" identifier = (call_expression "(undefined1)(uVar36 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 8)" ( (binary_expression "uVar36 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uVar44 = (undefined1)(uVar36 >> 0x10);" (assignment_expression "uVar44 = (undefined1)(uVar36 >> 0x10)" identifier = (call_expression "(undefined1)(uVar36 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 0x10)" ( (binary_expression "uVar36 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar37 = (undefined1)(uVar36 >> 0x18);" (assignment_expression "uVar37 = (undefined1)(uVar36 >> 0x18)" identifier = (call_expression "(undefined1)(uVar36 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 0x18)" ( (binary_expression "uVar36 >> 0x18" identifier >> number_literal) )))) ;) }) (else_clause "else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" else (compound_statement "{\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" { (expression_statement "uVar37 = 0xff;" (assignment_expression "uVar37 = 0xff" identifier = number_literal) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "puVar28[8] = uVar37;" (assignment_expression "puVar28[8] = uVar37" (subscript_expression "puVar28[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29 = puVar28 + 0xc;" (assignment_expression "puVar29 = puVar28 + 0xc" identifier = (binary_expression "puVar28 + 0xc" identifier + number_literal)) ;) (expression_statement "puVar28[9] = uVar44;" (assignment_expression "puVar28[9] = uVar44" (subscript_expression "puVar28[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[10] = uVar45;" (assignment_expression "puVar28[10] = uVar45" (subscript_expression "puVar28[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[0xb] = uVar52;" (assignment_expression "puVar28[0xb] = uVar52" (subscript_expression "puVar28[0xb]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }" else (compound_statement "{\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }" { (if_statement "if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }" if (parenthesized_expression "(iVar46 != 8)" ( (binary_expression "iVar46 != 8" identifier != number_literal) )) (compound_statement "{\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }" { (expression_statement "(**(code **)(puVar54 + 0x1539fc))(puVar27);" (call_expression "(**(code **)(puVar54 + 0x1539fc))(puVar27)" (parenthesized_expression "(**(code **)(puVar54 + 0x1539fc))" ( (pointer_expression "**(code **)(puVar54 + 0x1539fc)" * (pointer_expression "*(code **)(puVar54 + 0x1539fc)" * (cast_expression "(code **)(puVar54 + 0x1539fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1539fc)" ( (binary_expression "puVar54 + 0x1539fc" identifier + number_literal) ))))) )) (argument_list "(puVar27)" ( identifier ))) ;) (expression_statement "puVar8 = (ushort *)0x5ca;" (assignment_expression "puVar8 = (ushort *)0x5ca" identifier = (cast_expression "(ushort *)0x5ca" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);" (call_expression "(**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0)" (parenthesized_expression "(**(code **)(puVar54 + 0x15395c))" ( (pointer_expression "**(code **)(puVar54 + 0x15395c)" * (pointer_expression "*(code **)(puVar54 + 0x15395c)" * (cast_expression "(code **)(puVar54 + 0x15395c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15395c)" ( (binary_expression "puVar54 + 0x15395c" identifier + number_literal) ))))) )) (argument_list "(puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0)" ( identifier , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7284" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(puVar54 + 0x153320) + -0x5aa8" (pointer_expression "*(int *)(puVar54 + 0x153320)" * (cast_expression "(int *)(puVar54 + 0x153320)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153320)" ( (binary_expression "puVar54 + 0x153320" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x15331c) + 0x3e28" (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "puVar50 + 0x1a0" identifier + number_literal) ))) ;) (if_statement "if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }" if (parenthesized_expression "(*(int *)(iVar10 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar10 + 0xc) == 0" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }" { (expression_statement "(**(code **)(puVar54 + 0x1540c4))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x1540c4))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1540c4))" ( (pointer_expression "**(code **)(puVar54 + 0x1540c4)" * (pointer_expression "*(code **)(puVar54 + 0x1540c4)" * (cast_expression "(code **)(puVar54 + 0x1540c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1540c4)" ( (binary_expression "puVar54 + 0x1540c4" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))) ;) }) (else_clause "else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }" else (compound_statement "{\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }" { (do_statement "do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);" do (compound_statement "{\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      }" { (expression_statement "puVar38 = puVar50;" (assignment_expression "puVar38 = puVar50" identifier = identifier) ;) (expression_statement "puVar50 = *(ushort **)(puVar38 + 0x19b2);" (assignment_expression "puVar50 = *(ushort **)(puVar38 + 0x19b2)" identifier = (pointer_expression "*(ushort **)(puVar38 + 0x19b2)" * (cast_expression "(ushort **)(puVar38 + 0x19b2)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x19b2)" ( (binary_expression "puVar38 + 0x19b2" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(puVar50 != (ushort *)0x0)" ( (binary_expression "puVar50 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "(**(code **)(puVar54 + 0x1540c4))(puVar38);" (call_expression "(**(code **)(puVar54 + 0x1540c4))(puVar38)" (parenthesized_expression "(**(code **)(puVar54 + 0x1540c4))" ( (pointer_expression "**(code **)(puVar54 + 0x1540c4)" * (pointer_expression "*(code **)(puVar54 + 0x1540c4)" * (cast_expression "(code **)(puVar54 + 0x1540c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1540c4)" ( (binary_expression "puVar54 + 0x1540c4" identifier + number_literal) ))))) )) (argument_list "(puVar38)" ( identifier ))) ;) }))) (goto_statement "goto LAB_0025569c;" goto statement_identifier ;) })) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x28" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar45 = 0;\n                  }" { (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" else (compound_statement "{\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" { (expression_statement "dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);" (assignment_expression "dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0)" identifier = (binary_expression "(double)fVar59 / *(double *)(iVar40 + -0x5af0)" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(iVar40 + -0x5af0)" * (cast_expression "(double *)(iVar40 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar40 + -0x5af0)" ( (binary_expression "iVar40 + -0x5af0" identifier + number_literal) )))))) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }" if (parenthesized_expression "(dVar58 < *(double *)(iVar39 + -0x5ae8))" ( (binary_expression "dVar58 < *(double *)(iVar39 + -0x5ae8)" identifier < (pointer_expression "*(double *)(iVar39 + -0x5ae8)" * (cast_expression "(double *)(iVar39 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + -0x5ae8)" ( (binary_expression "iVar39 + -0x5ae8" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }" { (expression_statement "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400)" identifier = (binary_expression "dVar58 + *(double *)(iVar49 + 0x1400)" identifier + (pointer_expression "*(double *)(iVar49 + 0x1400)" * (cast_expression "(double *)(iVar49 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1400)" ( (binary_expression "iVar49 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" if (parenthesized_expression "(dVar58 < *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 < *(double *)(iVar51 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n                        uVar45 = (undefined1)(int)dVar58;\n                      }" { (expression_statement "uVar45 = (undefined1)(int)dVar58;" (assignment_expression "uVar45 = (undefined1)(int)dVar58" identifier = (cast_expression "(undefined1)(int)dVar58" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar58" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" else (compound_statement "{\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" { (expression_statement "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));" (assignment_expression "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" identifier = (call_expression "(undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar58 - *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 - *(double *)(iVar51 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )))) ;) }))) })) }))) (expression_statement "*puVar28 = uVar45;" (assignment_expression "*puVar28 = uVar45" (pointer_expression "*puVar28" * identifier) = identifier) ;) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x30" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar45 = 0;\n                  }" { (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" else (compound_statement "{\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" { (expression_statement "dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);" (assignment_expression "dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0)" identifier = (binary_expression "(double)fVar59 / *(double *)(iVar40 + -0x5af0)" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(iVar40 + -0x5af0)" * (cast_expression "(double *)(iVar40 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar40 + -0x5af0)" ( (binary_expression "iVar40 + -0x5af0" identifier + number_literal) )))))) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }" if (parenthesized_expression "(dVar58 < *(double *)(iVar39 + -0x5ae8))" ( (binary_expression "dVar58 < *(double *)(iVar39 + -0x5ae8)" identifier < (pointer_expression "*(double *)(iVar39 + -0x5ae8)" * (cast_expression "(double *)(iVar39 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + -0x5ae8)" ( (binary_expression "iVar39 + -0x5ae8" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }" { (expression_statement "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400)" identifier = (binary_expression "dVar58 + *(double *)(iVar49 + 0x1400)" identifier + (pointer_expression "*(double *)(iVar49 + 0x1400)" * (cast_expression "(double *)(iVar49 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1400)" ( (binary_expression "iVar49 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" if (parenthesized_expression "(dVar58 < *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 < *(double *)(iVar51 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n                        uVar45 = (undefined1)(int)dVar58;\n                      }" { (expression_statement "uVar45 = (undefined1)(int)dVar58;" (assignment_expression "uVar45 = (undefined1)(int)dVar58" identifier = (cast_expression "(undefined1)(int)dVar58" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar58" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" else (compound_statement "{\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" { (expression_statement "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));" (assignment_expression "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" identifier = (call_expression "(undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar58 - *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 - *(double *)(iVar51 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )))) ;) }))) })) }))) (expression_statement "puVar28[1] = uVar45;" (assignment_expression "puVar28[1] = uVar45" (subscript_expression "puVar28[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x38" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }" { (expression_statement "puVar29 = puVar28 + 3;" (assignment_expression "puVar29 = puVar28 + 3" identifier = (binary_expression "puVar28 + 3" identifier + number_literal)) ;) (expression_statement "puVar28[2] = 0;" (assignment_expression "puVar28[2] = 0" (subscript_expression "puVar28[2]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }" else (compound_statement "{\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }" { (expression_statement "dVar58 = (double)fVar59 / dVar61;" (assignment_expression "dVar58 = (double)fVar59 / dVar61" identifier = (binary_expression "(double)fVar59 / dVar61" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }" if (parenthesized_expression "(dVar58 < dVar64)" ( (binary_expression "dVar58 < dVar64" identifier < identifier) )) (compound_statement "{\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }" { (expression_statement "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400)" identifier = (binary_expression "dVar58 + *(double *)(iVar49 + 0x1400)" identifier + (pointer_expression "*(double *)(iVar49 + 0x1400)" * (cast_expression "(double *)(iVar49 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1400)" ( (binary_expression "iVar49 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" if (parenthesized_expression "(dVar58 < *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 < *(double *)(iVar51 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n                        uVar45 = (undefined1)(int)dVar58;\n                      }" { (expression_statement "uVar45 = (undefined1)(int)dVar58;" (assignment_expression "uVar45 = (undefined1)(int)dVar58" identifier = (cast_expression "(undefined1)(int)dVar58" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar58" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" else (compound_statement "{\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" { (expression_statement "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));" (assignment_expression "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" identifier = (call_expression "(undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar58 - *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 - *(double *)(iVar51 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )))) ;) }))) (expression_statement "puVar28[2] = uVar45;" (assignment_expression "puVar28[2] = uVar45" (subscript_expression "puVar28[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29 = puVar28 + 3;" (assignment_expression "puVar29 = puVar28 + 3" identifier = (binary_expression "puVar28 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }" else (compound_statement "{\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }" { (expression_statement "puVar29 = puVar28 + 3;" (assignment_expression "puVar29 = puVar28 + 3" identifier = (binary_expression "puVar28 + 3" identifier + number_literal)) ;) (expression_statement "puVar28[2] = 0xff;" (assignment_expression "puVar28[2] = 0xff" (subscript_expression "puVar28[2]" identifier [ number_literal ]) = number_literal) ;) }))) }))) }))))) (expression_statement "iVar24 = *(int *)(puVar50 + 0x12);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x12)" identifier = (pointer_expression "*(int *)(puVar50 + 0x12)" * (cast_expression "(int *)(puVar50 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12)" ( (binary_expression "puVar50 + 0x12" identifier + number_literal) ))))) ;) (expression_statement "iVar34 = iVar34 + 1;" (assignment_expression "iVar34 = iVar34 + 1" identifier = (binary_expression "iVar34 + 1" identifier + number_literal)) ;) (expression_statement "iVar32 = iVar32 + 0x58;" (assignment_expression "iVar32 = iVar32 + 0x58" identifier = (binary_expression "iVar32 + 0x58" identifier + number_literal)) ;) (expression_statement "puVar28 = puVar29;" (assignment_expression "puVar28 = puVar29" identifier = identifier) ;) }) while (parenthesized_expression "(iVar34 < iVar24)" ( (binary_expression "iVar34 < iVar24" identifier < identifier) )) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);" (call_expression "(**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27)" (parenthesized_expression "(**(code **)(puVar54 + 0x1543d0))" ( (pointer_expression "**(code **)(puVar54 + 0x1543d0)" * (pointer_expression "*(code **)(puVar54 + 0x1543d0)" * (cast_expression "(code **)(puVar54 + 0x1543d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1543d0)" ( (binary_expression "puVar54 + 0x1543d0" identifier + number_literal) ))))) )) (argument_list "(puVar50,uVar13 * iVar24,puVar27)" ( identifier , (binary_expression "uVar13 * iVar24" identifier * identifier) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x1539fc))(puVar27);" (call_expression "(**(code **)(puVar54 + 0x1539fc))(puVar27)" (parenthesized_expression "(**(code **)(puVar54 + 0x1539fc))" ( (pointer_expression "**(code **)(puVar54 + 0x1539fc)" * (pointer_expression "*(code **)(puVar54 + 0x1539fc)" * (cast_expression "(code **)(puVar54 + 0x1539fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1539fc)" ( (binary_expression "puVar54 + 0x1539fc" identifier + number_literal) ))))) )) (argument_list "(puVar27)" ( identifier ))) ;) })) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1537fc);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1537fc)" identifier = (pointer_expression "*(code **)(puVar54 + 0x1537fc)" * (cast_expression "(code **)(puVar54 + 0x1537fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537fc)" ( (binary_expression "puVar54 + 0x1537fc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }" else (compound_statement "{\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }" { (expression_statement "(**(code **)(puVar54 + 0x1538c8))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x1538c8))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1538c8))" ( (pointer_expression "**(code **)(puVar54 + 0x1538c8)" * (pointer_expression "*(code **)(puVar54 + 0x1538c8)" * (cast_expression "(code **)(puVar54 + 0x1538c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1538c8)" ( (binary_expression "puVar54 + 0x1538c8" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))) ;) (while_statement "while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }" { (expression_statement "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);" (assignment_expression "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50)" identifier = (call_expression "(**(code **)(puVar54 + 0x153948))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153948))" ( (pointer_expression "**(code **)(puVar54 + 0x153948)" * (pointer_expression "*(code **)(puVar54 + 0x153948)" * (cast_expression "(code **)(puVar54 + 0x153948)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153948)" ( (binary_expression "puVar54 + 0x153948" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier )))) ;) (if_statement "if (iVar24 == 0) break;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24)" identifier = (call_expression "(**(code **)(puVar54 + 0x153e14))(puVar50,iVar24)" (parenthesized_expression "(**(code **)(puVar54 + 0x153e14))" ( (pointer_expression "**(code **)(puVar54 + 0x153e14)" * (pointer_expression "*(code **)(puVar54 + 0x153e14)" * (cast_expression "(code **)(puVar54 + 0x153e14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153e14)" ( (binary_expression "puVar54 + 0x153e14" identifier + number_literal) ))))) )) (argument_list "(puVar50,iVar24)" ( identifier , identifier )))) ;) (expression_statement "uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);" (assignment_expression "uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48)" identifier = (call_expression "(**(code **)(puVar54 + 0x153784))(uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x153784))" ( (pointer_expression "**(code **)(puVar54 + 0x153784)" * (pointer_expression "*(code **)(puVar54 + 0x153784)" * (cast_expression "(code **)(puVar54 + 0x153784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153784)" ( (binary_expression "puVar54 + 0x153784" identifier + number_literal) ))))) )) (argument_list "(uVar48)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);" (call_expression "(**(code **)(puVar54 + 0x153d10))(puVar50,uVar23)" (parenthesized_expression "(**(code **)(puVar54 + 0x153d10))" ( (pointer_expression "**(code **)(puVar54 + 0x153d10)" * (pointer_expression "*(code **)(puVar54 + 0x153d10)" * (cast_expression "(code **)(puVar54 + 0x153d10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153d10)" ( (binary_expression "puVar54 + 0x153d10" identifier + number_literal) ))))) )) (argument_list "(puVar50,uVar23)" ( identifier , identifier ))) ;) (expression_statement "uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);" (assignment_expression "uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48)" identifier = (call_expression "(**(code **)(puVar54 + 0x153784))(uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x153784))" ( (pointer_expression "**(code **)(puVar54 + 0x153784)" * (pointer_expression "*(code **)(puVar54 + 0x153784)" * (cast_expression "(code **)(puVar54 + 0x153784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153784)" ( (binary_expression "puVar54 + 0x153784" identifier + number_literal) ))))) )) (argument_list "(uVar48)" ( identifier )))) ;) (expression_statement "uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48)" identifier = (call_expression "(**(code **)(puVar54 + 0x1538a4))(uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1538a4))" ( (pointer_expression "**(code **)(puVar54 + 0x1538a4)" * (pointer_expression "*(code **)(puVar54 + 0x1538a4)" * (cast_expression "(code **)(puVar54 + 0x1538a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1538a4)" ( (binary_expression "puVar54 + 0x1538a4" identifier + number_literal) ))))) )) (argument_list "(uVar48)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1543d0))" ( (pointer_expression "**(code **)(puVar54 + 0x1543d0)" * (pointer_expression "*(code **)(puVar54 + 0x1543d0)" * (cast_expression "(code **)(puVar54 + 0x1543d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1543d0)" ( (binary_expression "puVar54 + 0x1543d0" identifier + number_literal) ))))) )) (argument_list "(puVar50,uVar23,uVar48)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1537fc);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1537fc)" identifier = (pointer_expression "*(code **)(puVar54 + 0x1537fc)" * (cast_expression "(code **)(puVar54 + 0x1537fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537fc)" ( (binary_expression "puVar54 + 0x1537fc" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)puVar50 == 2) goto LAB_002561e8;" if (parenthesized_expression "(*(int *)puVar50 == 2)" ( (binary_expression "*(int *)puVar50 == 2" (pointer_expression "*(int *)puVar50" * (cast_expression "(int *)puVar50" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (goto_statement "goto LAB_002561e8;" goto statement_identifier ;)) }))) (expression_statement "puVar8 = (ushort *)&uStack_5150;" (assignment_expression "puVar8 = (ushort *)&uStack_5150" identifier = (cast_expression "(ushort *)&uStack_5150" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_5150" & identifier))) ;) (expression_statement "iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);" (assignment_expression "iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38)" identifier = (call_expression "(*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "(puVar50,auStack_4144,0,puVar8,puVar38)" ( identifier , identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }" if (parenthesized_expression "(iVar46 == 0)" ( (binary_expression "iVar46 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }" { (expression_statement "puVar8 = (ushort *)0x605;" (assignment_expression "puVar8 = (ushort *)0x605" identifier = (cast_expression "(ushort *)0x605" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);" (call_expression "(**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0)" (parenthesized_expression "(**(code **)(puVar54 + 0x15395c))" ( (pointer_expression "**(code **)(puVar54 + 0x15395c)" * (pointer_expression "*(code **)(puVar54 + 0x15395c)" * (cast_expression "(code **)(puVar54 + 0x15395c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15395c)" ( (binary_expression "puVar54 + 0x15395c" identifier + number_literal) ))))) )) (argument_list "(puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0)" ( identifier , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7284" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7450" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x15331c) + 0x3e28" (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "puVar50 + 0x1a0" identifier + number_literal) ))) ;) (expression_statement "puVar38 = puVar50;" (assignment_expression "puVar38 = puVar50" identifier = identifier) ;) (if_statement "if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }" if (parenthesized_expression "(*(int *)(iVar10 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar10 + 0xc) == 0" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }" { (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1540c4);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1540c4)" identifier = (pointer_expression "*(code **)(puVar54 + 0x1540c4)" * (cast_expression "(code **)(puVar54 + 0x1540c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1540c4)" ( (binary_expression "puVar54 + 0x1540c4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }" else (compound_statement "{\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }" { (do_statement "do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);" do (compound_statement "{\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            }" { (expression_statement "puVar50 = puVar38;" (assignment_expression "puVar50 = puVar38" identifier = identifier) ;) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1540c4);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1540c4)" identifier = (pointer_expression "*(code **)(puVar54 + 0x1540c4)" * (cast_expression "(code **)(puVar54 + 0x1540c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1540c4)" ( (binary_expression "puVar54 + 0x1540c4" identifier + number_literal) ))))) ;) (expression_statement "puVar38 = *(ushort **)(puVar50 + 0x19b2);" (assignment_expression "puVar38 = *(ushort **)(puVar50 + 0x19b2)" identifier = (pointer_expression "*(ushort **)(puVar50 + 0x19b2)" * (cast_expression "(ushort **)(puVar50 + 0x19b2)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar50 + 0x19b2)" ( (binary_expression "puVar50 + 0x19b2" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0)" ( (binary_expression "*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0" (pointer_expression "*(ushort **)(puVar50 + 0x19b2)" * (cast_expression "(ushort **)(puVar50 + 0x19b2)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar50 + 0x19b2)" ( (binary_expression "puVar50 + 0x19b2" identifier + number_literal) )))) != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (goto_statement "goto LAB_00255ea8;" goto statement_identifier ;) })) (expression_statement "iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);" (assignment_expression "iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50)" identifier = (call_expression "(**(code **)(puVar54 + 0x153eac))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153eac))" ( (pointer_expression "**(code **)(puVar54 + 0x153eac)" * (pointer_expression "*(code **)(puVar54 + 0x153eac)" * (cast_expression "(code **)(puVar54 + 0x153eac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153eac)" ( (binary_expression "puVar54 + 0x153eac" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier )))) ;) (if_statement "if (iVar24 == 0) break;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);" (assignment_expression "puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50)" identifier = (cast_expression "(ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar54 + 0x153e44))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153e44))" ( (pointer_expression "**(code **)(puVar54 + 0x153e44)" * (pointer_expression "*(code **)(puVar54 + 0x153e44)" * (cast_expression "(code **)(puVar54 + 0x153e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153e44)" ( (binary_expression "puVar54 + 0x153e44" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))))) ;) (if_statement "if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }" if (parenthesized_expression "(*(code **)(puVar50 + 0x194) != (code *)0x0)" ( (binary_expression "*(code **)(puVar50 + 0x194) != (code *)0x0" (pointer_expression "*(code **)(puVar50 + 0x194)" * (cast_expression "(code **)(puVar50 + 0x194)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar50 + 0x194)" ( (binary_expression "puVar50 + 0x194" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }" { (expression_statement "puVar8 = puStack_5188;" (assignment_expression "puVar8 = puStack_5188" identifier = identifier) ;) (expression_statement "iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);" (assignment_expression "iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150)" identifier = (call_expression "(**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150)" (parenthesized_expression "(**(code **)(puVar50 + 0x194))" ( (pointer_expression "**(code **)(puVar50 + 0x194)" * (pointer_expression "*(code **)(puVar50 + 0x194)" * (cast_expression "(code **)(puVar50 + 0x194)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar50 + 0x194)" ( (binary_expression "puVar50 + 0x194" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x153328) + -0x150)" ( (binary_expression "*(int *)(puVar54 + 0x153328) + -0x150" (pointer_expression "*(int *)(puVar54 + 0x153328)" * (cast_expression "(int *)(puVar54 + 0x153328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153328)" ( (binary_expression "puVar54 + 0x153328" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar46 == 0) break;" if (parenthesized_expression "(iVar46 == 0)" ( (binary_expression "iVar46 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) })) (expression_statement "puStack_5188 = (ushort *)((int)puStack_5188 + 1);" (assignment_expression "puStack_5188 = (ushort *)((int)puStack_5188 + 1)" identifier = (cast_expression "(ushort *)((int)puStack_5188 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_5188 + 1)" ( (binary_expression "(int)puStack_5188 + 1" (cast_expression "(int)puStack_5188" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(*(int *)(iVar10 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar10 + 0xc) != 0" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) != number_literal) )) ;) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1540c4);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1540c4)" identifier = (pointer_expression "*(code **)(puVar54 + 0x1540c4)" * (cast_expression "(code **)(puVar54 + 0x1540c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1540c4)" ( (binary_expression "puVar54 + 0x1540c4" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00255ea8:\n      (*pcVar55)(puVar50);" statement_identifier : (expression_statement "(*pcVar55)(puVar50);" (call_expression "(*pcVar55)(puVar50)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "(puVar50)" ( identifier ))) ;)) }))) (if_statement "if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }" if (parenthesized_expression "(iStack_3144 == *piVar18)" ( (binary_expression "iStack_3144 == *piVar18" identifier == (pointer_expression "*piVar18" * identifier)) )) (compound_statement "{\n      return iVar46;\n    }" { (return_statement "return iVar46;" return identifier ;) })) (expression_statement "(**(code **)(puVar54 + 0x153aa0))();" (call_expression "(**(code **)(puVar54 + 0x153aa0))()" (parenthesized_expression "(**(code **)(puVar54 + 0x153aa0))" ( (pointer_expression "**(code **)(puVar54 + 0x153aa0)" * (pointer_expression "*(code **)(puVar54 + 0x153aa0)" * (cast_expression "(code **)(puVar54 + 0x153aa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153aa0)" ( (binary_expression "puVar54 + 0x153aa0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a)" identifier = (call_expression "(**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" ( (pointer_expression "**(code **)(puVar54 + 0x154044)" * (pointer_expression "*(code **)(puVar54 + 0x154044)" * (cast_expression "(code **)(puVar54 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154044)" ( (binary_expression "puVar54 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a)" ( (binary_expression "*(int *)(puVar54 + 0x15331c) + 0xdd0" (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "puVar8 + -0x393a" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) (labeled_statement "LAB_00255f3c:\n  do {\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  } while (pbVar25 != pbVar53);" statement_identifier : (do_statement "do {\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  } while (pbVar25 != pbVar53);" do (compound_statement "{\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  }" { (if_statement "if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }" if (parenthesized_expression "(*pbVar25 == 0x7d)" ( (binary_expression "*pbVar25 == 0x7d" (pointer_expression "*pbVar25" * identifier) == number_literal) )) (compound_statement "{\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }" { (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0x5c)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,0x5c)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,*pbVar25)" ( identifier , (pointer_expression "*pbVar25" * identifier) ))) ;) }) (else_clause "else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }" else (compound_statement "{\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }" { (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,*pbVar25)" ( identifier , (pointer_expression "*pbVar25" * identifier) ))) ;) }))) (expression_statement "pbVar25 = pbVar25 + 1;" (assignment_expression "pbVar25 = pbVar25 + 1" identifier = (binary_expression "pbVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar25 != pbVar53)" ( (binary_expression "pbVar25 != pbVar53" identifier != identifier) )) ;)) (labeled_statement "LAB_00255f78:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);" statement_identifier : (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7d)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,0x7d)" ( identifier , number_literal ))) ;)) (labeled_statement "LAB_00255d60:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,10);" statement_identifier : (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,10);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,10)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,10)" ( identifier , number_literal ))) ;)) (expression_statement "puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);" (assignment_expression "puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50)" identifier = (cast_expression "(ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar54 + 0x1542fc))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1542fc))" ( (pointer_expression "**(code **)(puVar54 + 0x1542fc)" * (pointer_expression "*(code **)(puVar54 + 0x1542fc)" * (cast_expression "(code **)(puVar54 + 0x1542fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1542fc)" ( (binary_expression "puVar54 + 0x1542fc" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))))) ;) (if_statement "if (puVar9 == (ushort *)0x0) goto LAB_00255d8c;" if (parenthesized_expression "(puVar9 == (ushort *)0x0)" ( (binary_expression "puVar9 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00255d8c;" goto statement_identifier ;)) (goto_statement "goto LAB_00255c90;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x00255000) */\n/* WARNING: Removing unreachable block (ram,0x00255118) */\n/* WARNING: Removing unreachable block (ram,0x00254944) */\n/* WARNING: Removing unreachable block (ram,0x0025496c) */\n/* WARNING: Removing unreachable block (ram,0x00254a08) */\n/* WARNING: Removing unreachable block (ram,0x00254978) */\n/* WARNING: Removing unreachable block (ram,0x00254a30) */\n/* WARNING: Removing unreachable block (ram,0x0025497c) */\n/* WARNING: Removing unreachable block (ram,0x00254990) */\n/* WARNING: Removing unreachable block (ram,0x0025505c) */\n/* WARNING: Removing unreachable block (ram,0x002549bc) */\n/* WARNING: Removing unreachable block (ram,0x002549f0) */\n/* WARNING: Removing unreachable block (ram,0x00254a3c) */\n/* WARNING: Removing unreachable block (ram,0x00254a40) */\n/* WARNING: Removing unreachable block (ram,0x00254ac0) */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": 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\nImage * ReadMPCImage(ImageInfo *image_info,ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  undefined8 uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  int iVar8;\n  ImageInfo *pIVar9;\n  ImageInfo *pIVar10;\n  int iVar11;\n  FILE *pFVar12;\n  int iVar13;\n  uint uVar14;\n  Image *pIVar15;\n  void *pvVar16;\n  size_t sVar17;\n  double *pdVar18;\n  FILE *pFVar19;\n  undefined4 *puVar20;\n  int *piVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  undefined4 uVar27;\n  int iVar28;\n  FILE *pFVar29;\n  byte *pbVar30;\n  int *piVar31;\n  undefined1 *puVar32;\n  undefined1 *puVar33;\n  undefined1 *puVar34;\n  CompressionType CVar35;\n  int iVar36;\n  int iVar37;\n  FILE *pFVar38;\n  int iVar39;\n  ImageInfo *pIVar40;\n  undefined *puVar41;\n  char *pcVar42;\n  undefined1 uVar44;\n  uint uVar43;\n  FILE *pFVar45;\n  char *pcVar46;\n  int iVar47;\n  int iVar48;\n  int iVar49;\n  int iVar50;\n  undefined1 uVar51;\n  undefined1 uVar52;\n  char **ppcVar53;\n  int iVar54;\n  undefined4 uVar55;\n  int iVar56;\n  undefined4 unaff_s3;\n  FILE *unaff_s4;\n  FILE *unaff_s5;\n  int iVar57;\n  undefined1 uVar58;\n  FILE *unaff_s6;\n  FILE *unaff_s7;\n  byte *pbVar59;\n  undefined *puVar60;\n  FILE *unaff_s8;\n  code *pcVar61;\n  double dVar62;\n  double dVar63;\n  float fVar65;\n  double dVar64;\n  undefined2 uVar66;\n  double dVar67;\n  float fVar68;\n  double dVar69;\n  double dVar70;\n  double in_f20_21;\n  double dVar71;\n  double in_f22_23;\n  double in_f24_25;\n  double dVar72;\n  double dVar73;\n  double dVar74;\n  undefined8 uVar75;\n  FILE *pFStack_5188;\n  FILE aFStack_5150 [27];\n  undefined1 auStack_4144 [4096];\n  int iStack_3144;\n  ImageInfo *pIStack_3140;\n  ImageInfo *pIStack_313c;\n  undefined8 uStack_3138;\n  FILE *pFStack_3130;\n  FILE *pFStack_312c;\n  FILE *pFStack_3128;\n  FILE *pFStack_3124;\n  FILE *pFStack_3120;\n  code *pcStack_311c;\n  double dStack_3118;\n  double dStack_3110;\n  double dStack_3108;\n  undefined8 local_30d8;\n  undefined *local_30d0;\n  char *local_30cc;\n  ImageInfo *local_30c8;\n  int local_309c;\n  MagickOffsetType offset;\n  GeometryInfo geometry_info;\n  char cache_filename [4096];\n  char id [4096];\n  char keyword [4096];\n  \n  puVar60 = PTR___stack_chk_guard_003a9230;\n  uVar75 = CONCAT44(exception,unaff_s3);\n  iVar8 = *(int *)PTR___stack_chk_guard_003a9230;\n  if (image_info == (ImageInfo *)0x0) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xd78,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }\n  if (image_info->signature != 0xabacadab) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xda0,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }\n  if (image_info->debug != MagickFalse) {\n    local_30d8._4_4_ = image_info->filename;\n    local_30d8._0_4_ = (ExceptionInfo *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x1cac,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }\n  if (exception->signature != 0xabacadab) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x294c,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }\n  pIVar9 = (ImageInfo *)(*(code *)PTR_AcquireImage_003a960c)(image_info,exception);\n  pFVar45 = (FILE *)0x2;\n  pIVar40 = pIVar9;\n  local_309c = (*(code *)PTR_OpenBlob_003a924c)(image_info,pIVar9,2,exception);\n  if (local_309c == 0) {\n    (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n    pIVar15 = (Image *)0x0;\n  }\n  else {\n    pFVar45 = (FILE *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)((ImageInfo *)cache_filename,pIVar9->magick + 0x130);\n    pIVar40 = (ImageInfo *)cache_filename;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar75 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (FILE *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(pIVar9);\n      pIVar15 = (Image *)0x0;\n      image_info = (ImageInfo *)cache_filename;\n      uVar75 = CONCAT44(exception,unaff_s3);\n    }\n    else {\n      unaff_s5 = (FILE *)keyword;\n      pFVar45 = (FILE *)0x1000;\n      id[0] = '\0';\n      unaff_s4 = (FILE *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      offset._4_4_ = 0;\n      offset._0_4_ = 0;\n      pIVar10 = (ImageInfo *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = (FILE *)&geometry_info;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)((FILE *)&geometry_info);\n        unaff_s6 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar11 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        CVar35 = pIVar10->compression;\n        pIVar9->page = &DAT_00000008;\n        pFVar29 = (FILE *)(unaff_s4->_shortbuf + (CVar35 - 0x47));\n        pIVar9->temporary = 0x10;\n        uVar2 = *(ushort *)&pFVar29->_flags;\n        pFVar12 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = pFVar29;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = pFVar29;\n            if (pFVar12 == (FILE *)&DAT_0000003a) break;\n            if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }\n            CVar35 = pIVar10->compression;\n            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = pFVar29;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n        iVar13 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = pFVar12;\n        if ((((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))) ||\n           ((char *)0x3f < pIVar9->page + -1)) {\n          uVar55 = 0x31d;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -400;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = image_info->filename;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n          pIVar15 = (Image *)0x0;\n          image_info = pIVar10;\n          goto LAB_002546dc;\n        }\n        iVar13 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar11 != iVar13) {\n          uVar55 = 0x323;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (pIVar9->file != (FILE *)0x0) {\n          unaff_s6 = (FILE *)0x0;\n          puVar32 = (undefined1 *)0x1000;\n          pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n          pIVar9->blob = pFVar29;\n          do {\n            *(undefined1 *)&pFVar29->_flags = 0;\n            pFVar19 = pFVar29;\n            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }\n            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n            if (iVar11 == -1) break;\n            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);\n            *(char *)&pFVar19->_flags = (char)iVar11;\n            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);\n            unaff_s4 = pFVar19;\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n          } while (iVar11 != 0);\n        }\n        pIVar40 = (ImageInfo *)0x0;\n        unaff_s4 = (FILE *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9);\n        if (pIVar9->compression == B44Compression) {\n          pcVar42 = pIVar9->scenes;\n          uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n          uVar14 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar43 = uVar14 * (int)pcVar42;\n          if ((int)((ulonglong)uVar75 >> 0x20) == 0) {\n            uVar43 = (uint)((uint)uVar75 < uVar43);\n            uVar75 = CONCAT44(uVar14,uVar43);\n            if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          pIVar40 = (ImageInfo *)0x58;\n          sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1);\n          pIVar9->scene = sVar17;\n          if (sVar17 == 0) {\n            uVar55 = 0x381;\nLAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n            local_30d8._0_4_ = (ExceptionInfo *)0x190;\n            unaff_s8 = pFVar12;\n            goto LAB_002546ac;\n          }\n          uVar75 = CONCAT44(uVar14,uVar43);\n          if (pIVar9->scenes != (char *)0x0) {\n            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);\n            if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }\n            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);\n            pFVar45 = pFVar29;\n            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);\n            pcVar42 = pIVar9->scenes;\n            iVar13 = (int)pcVar42 * uVar14;\n            uVar75 = CONCAT44(iVar13,pFVar29);\n            if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n            uVar75 = CONCAT44(iVar13,pFVar29);\n          }\n        }\n        uVar55 = (undefined4)((ulonglong)uVar75 >> 0x20);\n        uVar27 = (undefined4)uVar75;\n        if (((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) &&\n           ((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar11 == 0) {\nLAB_002550a8:\n          uVar55 = 0x3db;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284;\n          local_30d8._0_4_ = (ExceptionInfo *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar11 == 0) goto LAB_002550a8;\n        pFVar45 = (FILE *)0x1;\n        pIVar40 = (ImageInfo *)cache_filename;\n        local_30d8._0_4_ = exception;\n        iVar11 = (*(code *)PTR_PersistPixelCache_003a8dc0)\n                           (pIVar9,(ImageInfo *)cache_filename,1,&offset);\n        if (iVar11 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception);\n          uVar55 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          pIVar10 = (ImageInfo *)exception;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_EOFBlob_003a9748)(pIVar9);\n        if (iVar11 != 0) {\n          puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20);\n          local_30cc = pIVar9->magick + 0x130;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n          local_30c8 = pIVar10;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000);\n          (*(code *)PTR_DestroyString_003a9074)(pIVar10);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\nLAB_002548a8:\n          pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);\n          image_info = pIVar10;\n          unaff_s8 = pFVar12;\n          uVar75 = CONCAT44(uVar55,uVar27);\n          goto LAB_002546dc;\n        }\n        uVar55 = 0xffffffff;\n        uVar75 = CONCAT44(0xffffffff,uVar27);\n        while( true ) {\n          unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n          unaff_s4 = (FILE *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (FILE *)0xffffffff;\n          unaff_s8 = pFVar12;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (FILE *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          pFVar12 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        pIVar40 = pIVar9;\n        pFVar45 = (FILE *)exception;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(image_info);\n        iVar11 = (*(code *)PTR_GetNextImageInList_003a9470)(pIVar9);\n        if (iVar11 == 0) break;\n        pIVar9 = (ImageInfo *)(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9);\n        uVar75 = (*(code *)PTR_TellBlob_003a931c)(pIVar9);\n        pFVar45 = (FILE *)((ulonglong)uVar75 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n        pIVar40 = (ImageInfo *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(pIVar9,pIVar40,pFVar45,(int)uVar75);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n      pFVar12 = unaff_s8;\nLAB_00253dbc:\n      pIVar15 = (Image *)(*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n      image_info = pIVar10;\n      unaff_s8 = pFVar12;\n    }\n  }\nLAB_002546dc:\n  if (iVar8 == *(int *)puVar60) {\n    return pIVar15;\n  }\n  pcVar61 = WriteMPCImage;\n  puVar60 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  piVar21 = *(int **)(puVar60 + 0x153c6c);\n  iStack_3144 = *piVar21;\n  pIStack_3140 = pIVar9;\n  pIStack_313c = image_info;\n  pFStack_3130 = unaff_s4;\n  pFStack_312c = unaff_s5;\n  pFStack_3128 = unaff_s6;\n  pFStack_3124 = unaff_s7;\n  pFStack_3120 = unaff_s8;\n  pcStack_311c = pcVar61;\n  dStack_3118 = in_f20_21;\n  dStack_3110 = in_f22_23;\n  dStack_3108 = in_f24_25;\n  uStack_3138 = uVar75;\n  if (iVar8 == 0) {\n    pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xd78,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x483,\n                                  *(int *)(puVar60 + 0x153388) + -0x7274);\n    return pIVar15;\n  }\n  pFVar12 = *(FILE **)(puVar60 + 0x153388);\n  if (*(int *)(iVar8 + 0x3214) != -0x54535255) {\n    pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xda0,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x484,\n                                  &pFVar12[-0xc1]._IO_save_base);\n    return pIVar15;\n  }\n  if (pIVar40 != (ImageInfo *)0x0) {\n    if (*(int *)((int)&pIVar40[1].background_color.green + 4) != -0x54535255) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x153324) + -0x3784,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x486,\n                                    &pFVar12[-0xc1]._IO_save_base);\n      return pIVar15;\n    }\n    if (pIVar40[1].background_color.depth != 0) {\n      (**(code **)(puVar60 + 0x153c1c))\n                (0x8000,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                 *(int *)(puVar60 + 0x153388) + -0x7284,0x488,*(int *)(puVar60 + 0x153320) + -0x62ac\n                 ,pIVar40->magick + 0x130);\n    }\n    if (pFVar45 == (FILE *)0x0) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x1cac,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x489,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);\n      return pIVar15;\n    }\n    if (pFVar45->_IO_buf_base != (char *)0xabacadab) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x294c,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x48a,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);\n      return pIVar15;\n    }\n    pFVar12 = pFVar45;\n    iVar11 = (**(code **)(puVar60 + 0x153c88))(iVar8,pIVar40,4,pFVar45);\n    if (iVar11 == 0) {\nLAB_0025569c:\n      pIVar15 = (Image *)0x0;\n    }\n    else {\n      iVar54 = *(int *)(puVar60 + 0x15331c);\n      iVar56 = *(int *)(puVar60 + 0x15331c);\n      iVar57 = *(int *)(puVar60 + 0x15331c);\n      (**(code **)(puVar60 + 0x154278))(auStack_4144,pIVar40->magick + 0x130,0xffa);\n      ppcVar53 = &aFStack_5150[0]._IO_read_base;\n      iVar11 = *(int *)(puVar60 + 0x153388);\n      iVar13 = *(int *)(puVar60 + 0x153388);\n      iVar22 = *(int *)(puVar60 + 0x153388);\n      (**(code **)(puVar60 + 0x1539e4))(*(int *)(puVar60 + 0x153328) + -0x50b8,auStack_4144);\n      aFStack_5150[0]._IO_read_ptr = (char *)0x0;\n      aFStack_5150[0]._flags = 0;\n      (**(code **)(puVar60 + 0x153cb4))(pIVar40);\n      dVar74 = *(double *)(iVar54 + 0x1418);\n      iVar23 = *(int *)(puVar60 + 0x153388);\n      dVar73 = *(double *)(iVar56 + 0x1400);\n      iVar36 = *(int *)(puVar60 + 0x153388);\n      dVar72 = *(double *)(iVar57 + 0x1410);\n      iVar24 = *(int *)(puVar60 + 0x153388);\n      pFStack_5188 = (FILE *)0x0;\n      iVar25 = *(int *)(puVar60 + 0x153388);\n      do {\n        (**(code **)(puVar60 + 0x154260))(pIVar40,pIVar40->compression,pFVar45);\n        iVar26 = (**(code **)(puVar60 + 0x153c24))(pIVar40,1);\n        if (pIVar40->compression == B44Compression) {\n          pcVar42 = pIVar40->page;\n          if (pcVar42 == (char *)0x0) {\n            pcVar42 = (char *)0x1;\n          }\n          else {\n            pcVar46 = (char *)0x0;\n            if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }\n            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));\n            if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }\n          }\n          if (pcVar42 < pIVar40->scenes) {\n            (**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);\n          }\n        }\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar11 + -0x7434);\n        uVar55 = (**(code **)(puVar60 + 0x154128))(0);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar13 + -0x741c,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(5,pIVar40->compression);\n        dVar71 = (double)(int)pIVar40->scenes;\n        if ((int)pIVar40->scenes < 0) {\n          dVar71 = dVar71 + dVar74;\n        }\n        uVar27 = (**(code **)(puVar60 + 0x15379c))(0x3a,*(undefined4 *)(pIVar40->magick + 0xac));\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar22 + -0x7990,uVar55,dVar71,uVar27);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar36 + -0x7404);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        dVar71 = (double)(int)pIVar40->page;\n        if ((int)pIVar40->page < 0) {\n          dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar62 = (double)(int)pIVar40->extract;\n        if ((int)pIVar40->extract < 0) {\n          dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar63 = (double)(int)pIVar40->size;\n        if ((int)pIVar40->size < 0) {\n          dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n        }\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar23 + -0x73d0);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x90) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x49);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,\n                     dVar71);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(9,pIVar40->orientation);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar24 + -0x7928,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x44) == 0) {\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (*(int *)(pIVar40->magick + 0x4c) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar55 = (*pcVar61)(0x18);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (pIVar40->temporary != MagickFalse) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (*(int *)(pIVar40->magick + 0x4c) != 0) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (pIVar40->temporary != MagickFalse) {\nLAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);\n            dVar63 = (double)(int)pIVar40->adjoin;\n            if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        if (pIVar40->stream != (StreamHandler)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x41);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = *(double *)(pIVar40->magick + 8);\n        dVar67 = *(double *)(pIVar40->magick + 0x10);\n        if ((dVar71 != 0.0) || (dVar67 != 0.0)) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n          dVar62 = dVar67;\n        }\n        iVar37 = *(int *)(pIVar40->magick + 0x18);\n        iVar39 = *(int *)(pIVar40->magick + 0x1c);\n        iVar47 = *(int *)(pIVar40->magick + 0x20);\n        iVar28 = *(int *)(pIVar40->magick + 0x24);\n        if ((iVar37 == 0) && (iVar39 == 0)) {\n          if ((iVar47 != 0) || (iVar28 != 0)) {\n            uVar55 = SUB84(dVar63,0);\n            dVar63 = (double)CONCAT44(iVar28,uVar55);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar62 = (double)iVar39;\n          if (iVar39 < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar63 = (double)iVar37;\n          if (iVar37 < 0) {\n            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n          }\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28);\nLAB_00255ed4:\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        iVar28 = *(int *)(pIVar40->magick + 0x8c);\n        if ((*(int *)(pIVar40->magick + 0x88) != 0) ||\n           (pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0)) {\n          dVar63 = (double)CONCAT44(iVar28,SUB84(dVar63,0));\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,\n                     *(int *)(pIVar40->magick + 0x88),iVar28);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pcVar61 = *(code **)(puVar60 + 0x153eac);\n        }\n        iVar28 = (*pcVar61)(pIVar40);\n        iVar37 = *(int *)(pIVar40->magick + 0x5c);\n        if (iVar28 == 0) {\n          iVar28 = (**(code **)(puVar60 + 0x1536e8))(pIVar40);\n          if (iVar28 != 0) goto LAB_00255b3c;\n          if (iVar37 != 0) {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x6c);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x60);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          if (*(int *)(pIVar40->magick + 0x68) != 100) {\n            dVar63 = (double)*(int *)(pIVar40->magick + 0x68);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);\n          if (*(int *)(pIVar40->magick + 0x6c) < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar71 = (double)*(int *)(pIVar40->magick + 0x60);\n          if (*(int *)(pIVar40->magick + 0x60) < 0) {\n            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n          }\n          if (iVar37 == 0) {\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);\n            dVar63 = dVar62;\n            dVar62 = dVar71;\n          }\n          else {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x50) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x21);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x58) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x15);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->client_data != (void *)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x23);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = (double)(pIVar40->transparent_color).count;\n        if (dVar71 != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n        }\n        if (*(double *)&pIVar40->verbose != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar62 = *(double *)&pIVar40->options;\n          dVar63 = *(double *)&pIVar40->verbose;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->affirm != MagickFalse) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x36);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->cache == (void *)0x0) {\nLAB_00255c28:\n          pFVar12 = pIVar40->file;\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          if (iVar28 == 0) goto LAB_00255c28;\n          iVar37 = *(int *)(puVar60 + 0x153388);\n          do {\n            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          } while (iVar28 != 0);\n          pFVar12 = pIVar40->file;\n        }\n        if (pFVar12 != (FILE *)0x0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        (**(code **)(puVar60 + 0x1536d0))(pIVar40);\n        pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);\n        if (pFVar29 != (FILE *)0x0) {\n          iVar28 = *(int *)(puVar60 + 0x153388);\nLAB_00255c90:\n          pFVar12 = pFVar29;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pbVar30 = (byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45);\n          if (pbVar30 != (byte *)0x0) {\n            iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);\n            if (iVar37 != 0) {\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n            iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n            if (iVar39 == 0) {\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar25 + -0x770c);\n        if (pIVar40->file != (FILE *)0x0) {\n          if (pIVar40->blob != (void *)0x0) {\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40);\n          }\n          (**(code **)(puVar60 + 0x153a18))(pIVar40,0);\n        }\n        if (pIVar40->cache == (void *)0x0) {\n          if (pIVar40->compression == B44Compression) {\nLAB_002561e8:\n            uVar14 = (uint)(iVar26 * 3) >> 3;\n            puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);\n            if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;\n            pcVar42 = pIVar40->scenes;\n            if (0 < (int)pcVar42) {\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);\n            (**(code **)(puVar60 + 0x1539fc))(puVar32);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          while( true ) {\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n            if (iVar28 == 0) break;\n            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n          if (pIVar40->compression == B44Compression) goto LAB_002561e8;\n        }\n        pFVar12 = aFStack_5150;\n        pIVar15 = (Image *)(*pcVar61)(pIVar40,auStack_4144,0,pFVar12,pFVar45);\n        if (pIVar15 == (Image *)0x0) {\n          pFVar12 = (FILE *)0x605;\n          (**(code **)(puVar60 + 0x15395c))\n                    (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,\n                     pIVar40->magick + 0x130);\n          pIVar9 = pIVar40;\n          if (*(int *)(iVar8 + 0xc) == 0) {\n            pcVar61 = *(code **)(puVar60 + 0x1540c4);\n          }\n          else {\n            do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar26 = (**(code **)(puVar60 + 0x153eac))(pIVar40);\n        if (iVar26 == 0) break;\n        pIVar40 = (ImageInfo *)(**(code **)(puVar60 + 0x153e44))(pIVar40);\n        if (*(code **)(pIVar40->magick + 0x118) != (code *)0x0) {\n          pFVar12 = pFStack_5188;\n          pIVar15 = (Image *)(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150);\n          if (pIVar15 == (Image *)0x0) break;\n        }\n        pFStack_5188 = (FILE *)((int)&pFStack_5188->_flags + 1);\n      } while (*(int *)(iVar8 + 0xc) != 0);\n      pcVar61 = *(code **)(puVar60 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar61)(pIVar40);\n    }\n    if (iStack_3144 == *piVar21) {\n      return pIVar15;\n    }\n    (**(code **)(puVar60 + 0x153aa0))();\n  }\n  pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                               (*(int *)(puVar60 + 0x15331c) + 0xdd0,\n                                *(int *)(puVar60 + 0x153388) + -0x74dc,0x485,\n                                &pFVar12[-0xc1]._IO_save_base);\n  return pIVar15;\nLAB_00255f3c:\n  do {\n    if (*pbVar30 == 0x7d) {\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,0x5c);\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }\n    else {\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }\n    pbVar30 = pbVar30 + 1;\n  } while (pbVar30 != pbVar59);\nLAB_00255f78:\n  (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\nLAB_00255d60:\n  (**(code **)(puVar60 + 0x153a18))(pIVar40,10);\n  pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);\n  if (pFVar29 == (FILE *)0x0) goto LAB_00255d8c;\n  goto LAB_00255c90;\n}\n\n" comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment (function_definition "Image * ReadMPCImage(ImageInfo *image_info,ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  undefined8 uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  int iVar8;\n  ImageInfo *pIVar9;\n  ImageInfo *pIVar10;\n  int iVar11;\n  FILE *pFVar12;\n  int iVar13;\n  uint uVar14;\n  Image *pIVar15;\n  void *pvVar16;\n  size_t sVar17;\n  double *pdVar18;\n  FILE *pFVar19;\n  undefined4 *puVar20;\n  int *piVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  undefined4 uVar27;\n  int iVar28;\n  FILE *pFVar29;\n  byte *pbVar30;\n  int *piVar31;\n  undefined1 *puVar32;\n  undefined1 *puVar33;\n  undefined1 *puVar34;\n  CompressionType CVar35;\n  int iVar36;\n  int iVar37;\n  FILE *pFVar38;\n  int iVar39;\n  ImageInfo *pIVar40;\n  undefined *puVar41;\n  char *pcVar42;\n  undefined1 uVar44;\n  uint uVar43;\n  FILE *pFVar45;\n  char *pcVar46;\n  int iVar47;\n  int iVar48;\n  int iVar49;\n  int iVar50;\n  undefined1 uVar51;\n  undefined1 uVar52;\n  char **ppcVar53;\n  int iVar54;\n  undefined4 uVar55;\n  int iVar56;\n  undefined4 unaff_s3;\n  FILE *unaff_s4;\n  FILE *unaff_s5;\n  int iVar57;\n  undefined1 uVar58;\n  FILE *unaff_s6;\n  FILE *unaff_s7;\n  byte *pbVar59;\n  undefined *puVar60;\n  FILE *unaff_s8;\n  code *pcVar61;\n  double dVar62;\n  double dVar63;\n  float fVar65;\n  double dVar64;\n  undefined2 uVar66;\n  double dVar67;\n  float fVar68;\n  double dVar69;\n  double dVar70;\n  double in_f20_21;\n  double dVar71;\n  double in_f22_23;\n  double in_f24_25;\n  double dVar72;\n  double dVar73;\n  double dVar74;\n  undefined8 uVar75;\n  FILE *pFStack_5188;\n  FILE aFStack_5150 [27];\n  undefined1 auStack_4144 [4096];\n  int iStack_3144;\n  ImageInfo *pIStack_3140;\n  ImageInfo *pIStack_313c;\n  undefined8 uStack_3138;\n  FILE *pFStack_3130;\n  FILE *pFStack_312c;\n  FILE *pFStack_3128;\n  FILE *pFStack_3124;\n  FILE *pFStack_3120;\n  code *pcStack_311c;\n  double dStack_3118;\n  double dStack_3110;\n  double dStack_3108;\n  undefined8 local_30d8;\n  undefined *local_30d0;\n  char *local_30cc;\n  ImageInfo *local_30c8;\n  int local_309c;\n  MagickOffsetType offset;\n  GeometryInfo geometry_info;\n  char cache_filename [4096];\n  char id [4096];\n  char keyword [4096];\n  \n  puVar60 = PTR___stack_chk_guard_003a9230;\n  uVar75 = CONCAT44(exception,unaff_s3);\n  iVar8 = *(int *)PTR___stack_chk_guard_003a9230;\n  if (image_info == (ImageInfo *)0x0) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xd78,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }\n  if (image_info->signature != 0xabacadab) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xda0,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }\n  if (image_info->debug != MagickFalse) {\n    local_30d8._4_4_ = image_info->filename;\n    local_30d8._0_4_ = (ExceptionInfo *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x1cac,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }\n  if (exception->signature != 0xabacadab) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x294c,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }\n  pIVar9 = (ImageInfo *)(*(code *)PTR_AcquireImage_003a960c)(image_info,exception);\n  pFVar45 = (FILE *)0x2;\n  pIVar40 = pIVar9;\n  local_309c = (*(code *)PTR_OpenBlob_003a924c)(image_info,pIVar9,2,exception);\n  if (local_309c == 0) {\n    (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n    pIVar15 = (Image *)0x0;\n  }\n  else {\n    pFVar45 = (FILE *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)((ImageInfo *)cache_filename,pIVar9->magick + 0x130);\n    pIVar40 = (ImageInfo *)cache_filename;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar75 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (FILE *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(pIVar9);\n      pIVar15 = (Image *)0x0;\n      image_info = (ImageInfo *)cache_filename;\n      uVar75 = CONCAT44(exception,unaff_s3);\n    }\n    else {\n      unaff_s5 = (FILE *)keyword;\n      pFVar45 = (FILE *)0x1000;\n      id[0] = '\0';\n      unaff_s4 = (FILE *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      offset._4_4_ = 0;\n      offset._0_4_ = 0;\n      pIVar10 = (ImageInfo *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = (FILE *)&geometry_info;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)((FILE *)&geometry_info);\n        unaff_s6 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar11 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        CVar35 = pIVar10->compression;\n        pIVar9->page = &DAT_00000008;\n        pFVar29 = (FILE *)(unaff_s4->_shortbuf + (CVar35 - 0x47));\n        pIVar9->temporary = 0x10;\n        uVar2 = *(ushort *)&pFVar29->_flags;\n        pFVar12 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = pFVar29;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = pFVar29;\n            if (pFVar12 == (FILE *)&DAT_0000003a) break;\n            if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }\n            CVar35 = pIVar10->compression;\n            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = pFVar29;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n        iVar13 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = pFVar12;\n        if ((((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))) ||\n           ((char *)0x3f < pIVar9->page + -1)) {\n          uVar55 = 0x31d;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -400;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = image_info->filename;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n          pIVar15 = (Image *)0x0;\n          image_info = pIVar10;\n          goto LAB_002546dc;\n        }\n        iVar13 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar11 != iVar13) {\n          uVar55 = 0x323;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (pIVar9->file != (FILE *)0x0) {\n          unaff_s6 = (FILE *)0x0;\n          puVar32 = (undefined1 *)0x1000;\n          pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n          pIVar9->blob = pFVar29;\n          do {\n            *(undefined1 *)&pFVar29->_flags = 0;\n            pFVar19 = pFVar29;\n            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }\n            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n            if (iVar11 == -1) break;\n            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);\n            *(char *)&pFVar19->_flags = (char)iVar11;\n            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);\n            unaff_s4 = pFVar19;\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n          } while (iVar11 != 0);\n        }\n        pIVar40 = (ImageInfo *)0x0;\n        unaff_s4 = (FILE *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9);\n        if (pIVar9->compression == B44Compression) {\n          pcVar42 = pIVar9->scenes;\n          uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n          uVar14 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar43 = uVar14 * (int)pcVar42;\n          if ((int)((ulonglong)uVar75 >> 0x20) == 0) {\n            uVar43 = (uint)((uint)uVar75 < uVar43);\n            uVar75 = CONCAT44(uVar14,uVar43);\n            if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          pIVar40 = (ImageInfo *)0x58;\n          sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1);\n          pIVar9->scene = sVar17;\n          if (sVar17 == 0) {\n            uVar55 = 0x381;\nLAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n            local_30d8._0_4_ = (ExceptionInfo *)0x190;\n            unaff_s8 = pFVar12;\n            goto LAB_002546ac;\n          }\n          uVar75 = CONCAT44(uVar14,uVar43);\n          if (pIVar9->scenes != (char *)0x0) {\n            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);\n            if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }\n            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);\n            pFVar45 = pFVar29;\n            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);\n            pcVar42 = pIVar9->scenes;\n            iVar13 = (int)pcVar42 * uVar14;\n            uVar75 = CONCAT44(iVar13,pFVar29);\n            if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n            uVar75 = CONCAT44(iVar13,pFVar29);\n          }\n        }\n        uVar55 = (undefined4)((ulonglong)uVar75 >> 0x20);\n        uVar27 = (undefined4)uVar75;\n        if (((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) &&\n           ((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar11 == 0) {\nLAB_002550a8:\n          uVar55 = 0x3db;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284;\n          local_30d8._0_4_ = (ExceptionInfo *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar11 == 0) goto LAB_002550a8;\n        pFVar45 = (FILE *)0x1;\n        pIVar40 = (ImageInfo *)cache_filename;\n        local_30d8._0_4_ = exception;\n        iVar11 = (*(code *)PTR_PersistPixelCache_003a8dc0)\n                           (pIVar9,(ImageInfo *)cache_filename,1,&offset);\n        if (iVar11 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception);\n          uVar55 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          pIVar10 = (ImageInfo *)exception;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_EOFBlob_003a9748)(pIVar9);\n        if (iVar11 != 0) {\n          puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20);\n          local_30cc = pIVar9->magick + 0x130;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n          local_30c8 = pIVar10;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000);\n          (*(code *)PTR_DestroyString_003a9074)(pIVar10);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\nLAB_002548a8:\n          pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);\n          image_info = pIVar10;\n          unaff_s8 = pFVar12;\n          uVar75 = CONCAT44(uVar55,uVar27);\n          goto LAB_002546dc;\n        }\n        uVar55 = 0xffffffff;\n        uVar75 = CONCAT44(0xffffffff,uVar27);\n        while( true ) {\n          unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n          unaff_s4 = (FILE *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (FILE *)0xffffffff;\n          unaff_s8 = pFVar12;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (FILE *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          pFVar12 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        pIVar40 = pIVar9;\n        pFVar45 = (FILE *)exception;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(image_info);\n        iVar11 = (*(code *)PTR_GetNextImageInList_003a9470)(pIVar9);\n        if (iVar11 == 0) break;\n        pIVar9 = (ImageInfo *)(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9);\n        uVar75 = (*(code *)PTR_TellBlob_003a931c)(pIVar9);\n        pFVar45 = (FILE *)((ulonglong)uVar75 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n        pIVar40 = (ImageInfo *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(pIVar9,pIVar40,pFVar45,(int)uVar75);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n      pFVar12 = unaff_s8;\nLAB_00253dbc:\n      pIVar15 = (Image *)(*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n      image_info = pIVar10;\n      unaff_s8 = pFVar12;\n    }\n  }\nLAB_002546dc:\n  if (iVar8 == *(int *)puVar60) {\n    return pIVar15;\n  }\n  pcVar61 = WriteMPCImage;\n  puVar60 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  piVar21 = *(int **)(puVar60 + 0x153c6c);\n  iStack_3144 = *piVar21;\n  pIStack_3140 = pIVar9;\n  pIStack_313c = image_info;\n  pFStack_3130 = unaff_s4;\n  pFStack_312c = unaff_s5;\n  pFStack_3128 = unaff_s6;\n  pFStack_3124 = unaff_s7;\n  pFStack_3120 = unaff_s8;\n  pcStack_311c = pcVar61;\n  dStack_3118 = in_f20_21;\n  dStack_3110 = in_f22_23;\n  dStack_3108 = in_f24_25;\n  uStack_3138 = uVar75;\n  if (iVar8 == 0) {\n    pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xd78,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x483,\n                                  *(int *)(puVar60 + 0x153388) + -0x7274);\n    return pIVar15;\n  }\n  pFVar12 = *(FILE **)(puVar60 + 0x153388);\n  if (*(int *)(iVar8 + 0x3214) != -0x54535255) {\n    pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xda0,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x484,\n                                  &pFVar12[-0xc1]._IO_save_base);\n    return pIVar15;\n  }\n  if (pIVar40 != (ImageInfo *)0x0) {\n    if (*(int *)((int)&pIVar40[1].background_color.green + 4) != -0x54535255) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x153324) + -0x3784,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x486,\n                                    &pFVar12[-0xc1]._IO_save_base);\n      return pIVar15;\n    }\n    if (pIVar40[1].background_color.depth != 0) {\n      (**(code **)(puVar60 + 0x153c1c))\n                (0x8000,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                 *(int *)(puVar60 + 0x153388) + -0x7284,0x488,*(int *)(puVar60 + 0x153320) + -0x62ac\n                 ,pIVar40->magick + 0x130);\n    }\n    if (pFVar45 == (FILE *)0x0) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x1cac,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x489,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);\n      return pIVar15;\n    }\n    if (pFVar45->_IO_buf_base != (char *)0xabacadab) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x294c,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x48a,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);\n      return pIVar15;\n    }\n    pFVar12 = pFVar45;\n    iVar11 = (**(code **)(puVar60 + 0x153c88))(iVar8,pIVar40,4,pFVar45);\n    if (iVar11 == 0) {\nLAB_0025569c:\n      pIVar15 = (Image *)0x0;\n    }\n    else {\n      iVar54 = *(int *)(puVar60 + 0x15331c);\n      iVar56 = *(int *)(puVar60 + 0x15331c);\n      iVar57 = *(int *)(puVar60 + 0x15331c);\n      (**(code **)(puVar60 + 0x154278))(auStack_4144,pIVar40->magick + 0x130,0xffa);\n      ppcVar53 = &aFStack_5150[0]._IO_read_base;\n      iVar11 = *(int *)(puVar60 + 0x153388);\n      iVar13 = *(int *)(puVar60 + 0x153388);\n      iVar22 = *(int *)(puVar60 + 0x153388);\n      (**(code **)(puVar60 + 0x1539e4))(*(int *)(puVar60 + 0x153328) + -0x50b8,auStack_4144);\n      aFStack_5150[0]._IO_read_ptr = (char *)0x0;\n      aFStack_5150[0]._flags = 0;\n      (**(code **)(puVar60 + 0x153cb4))(pIVar40);\n      dVar74 = *(double *)(iVar54 + 0x1418);\n      iVar23 = *(int *)(puVar60 + 0x153388);\n      dVar73 = *(double *)(iVar56 + 0x1400);\n      iVar36 = *(int *)(puVar60 + 0x153388);\n      dVar72 = *(double *)(iVar57 + 0x1410);\n      iVar24 = *(int *)(puVar60 + 0x153388);\n      pFStack_5188 = (FILE *)0x0;\n      iVar25 = *(int *)(puVar60 + 0x153388);\n      do {\n        (**(code **)(puVar60 + 0x154260))(pIVar40,pIVar40->compression,pFVar45);\n        iVar26 = (**(code **)(puVar60 + 0x153c24))(pIVar40,1);\n        if (pIVar40->compression == B44Compression) {\n          pcVar42 = pIVar40->page;\n          if (pcVar42 == (char *)0x0) {\n            pcVar42 = (char *)0x1;\n          }\n          else {\n            pcVar46 = (char *)0x0;\n            if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }\n            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));\n            if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }\n          }\n          if (pcVar42 < pIVar40->scenes) {\n            (**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);\n          }\n        }\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar11 + -0x7434);\n        uVar55 = (**(code **)(puVar60 + 0x154128))(0);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar13 + -0x741c,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(5,pIVar40->compression);\n        dVar71 = (double)(int)pIVar40->scenes;\n        if ((int)pIVar40->scenes < 0) {\n          dVar71 = dVar71 + dVar74;\n        }\n        uVar27 = (**(code **)(puVar60 + 0x15379c))(0x3a,*(undefined4 *)(pIVar40->magick + 0xac));\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar22 + -0x7990,uVar55,dVar71,uVar27);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar36 + -0x7404);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        dVar71 = (double)(int)pIVar40->page;\n        if ((int)pIVar40->page < 0) {\n          dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar62 = (double)(int)pIVar40->extract;\n        if ((int)pIVar40->extract < 0) {\n          dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar63 = (double)(int)pIVar40->size;\n        if ((int)pIVar40->size < 0) {\n          dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n        }\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar23 + -0x73d0);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x90) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x49);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,\n                     dVar71);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(9,pIVar40->orientation);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar24 + -0x7928,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x44) == 0) {\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (*(int *)(pIVar40->magick + 0x4c) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar55 = (*pcVar61)(0x18);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (pIVar40->temporary != MagickFalse) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (*(int *)(pIVar40->magick + 0x4c) != 0) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (pIVar40->temporary != MagickFalse) {\nLAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);\n            dVar63 = (double)(int)pIVar40->adjoin;\n            if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        if (pIVar40->stream != (StreamHandler)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x41);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = *(double *)(pIVar40->magick + 8);\n        dVar67 = *(double *)(pIVar40->magick + 0x10);\n        if ((dVar71 != 0.0) || (dVar67 != 0.0)) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n          dVar62 = dVar67;\n        }\n        iVar37 = *(int *)(pIVar40->magick + 0x18);\n        iVar39 = *(int *)(pIVar40->magick + 0x1c);\n        iVar47 = *(int *)(pIVar40->magick + 0x20);\n        iVar28 = *(int *)(pIVar40->magick + 0x24);\n        if ((iVar37 == 0) && (iVar39 == 0)) {\n          if ((iVar47 != 0) || (iVar28 != 0)) {\n            uVar55 = SUB84(dVar63,0);\n            dVar63 = (double)CONCAT44(iVar28,uVar55);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar62 = (double)iVar39;\n          if (iVar39 < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar63 = (double)iVar37;\n          if (iVar37 < 0) {\n            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n          }\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28);\nLAB_00255ed4:\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        iVar28 = *(int *)(pIVar40->magick + 0x8c);\n        if ((*(int *)(pIVar40->magick + 0x88) != 0) ||\n           (pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0)) {\n          dVar63 = (double)CONCAT44(iVar28,SUB84(dVar63,0));\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,\n                     *(int *)(pIVar40->magick + 0x88),iVar28);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pcVar61 = *(code **)(puVar60 + 0x153eac);\n        }\n        iVar28 = (*pcVar61)(pIVar40);\n        iVar37 = *(int *)(pIVar40->magick + 0x5c);\n        if (iVar28 == 0) {\n          iVar28 = (**(code **)(puVar60 + 0x1536e8))(pIVar40);\n          if (iVar28 != 0) goto LAB_00255b3c;\n          if (iVar37 != 0) {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x6c);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x60);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          if (*(int *)(pIVar40->magick + 0x68) != 100) {\n            dVar63 = (double)*(int *)(pIVar40->magick + 0x68);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);\n          if (*(int *)(pIVar40->magick + 0x6c) < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar71 = (double)*(int *)(pIVar40->magick + 0x60);\n          if (*(int *)(pIVar40->magick + 0x60) < 0) {\n            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n          }\n          if (iVar37 == 0) {\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);\n            dVar63 = dVar62;\n            dVar62 = dVar71;\n          }\n          else {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x50) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x21);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x58) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x15);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->client_data != (void *)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x23);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = (double)(pIVar40->transparent_color).count;\n        if (dVar71 != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n        }\n        if (*(double *)&pIVar40->verbose != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar62 = *(double *)&pIVar40->options;\n          dVar63 = *(double *)&pIVar40->verbose;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->affirm != MagickFalse) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x36);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->cache == (void *)0x0) {\nLAB_00255c28:\n          pFVar12 = pIVar40->file;\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          if (iVar28 == 0) goto LAB_00255c28;\n          iVar37 = *(int *)(puVar60 + 0x153388);\n          do {\n            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          } while (iVar28 != 0);\n          pFVar12 = pIVar40->file;\n        }\n        if (pFVar12 != (FILE *)0x0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        (**(code **)(puVar60 + 0x1536d0))(pIVar40);\n        pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);\n        if (pFVar29 != (FILE *)0x0) {\n          iVar28 = *(int *)(puVar60 + 0x153388);\nLAB_00255c90:\n          pFVar12 = pFVar29;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pbVar30 = (byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45);\n          if (pbVar30 != (byte *)0x0) {\n            iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);\n            if (iVar37 != 0) {\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n            iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n            if (iVar39 == 0) {\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar25 + -0x770c);\n        if (pIVar40->file != (FILE *)0x0) {\n          if (pIVar40->blob != (void *)0x0) {\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40);\n          }\n          (**(code **)(puVar60 + 0x153a18))(pIVar40,0);\n        }\n        if (pIVar40->cache == (void *)0x0) {\n          if (pIVar40->compression == B44Compression) {\nLAB_002561e8:\n            uVar14 = (uint)(iVar26 * 3) >> 3;\n            puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);\n            if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;\n            pcVar42 = pIVar40->scenes;\n            if (0 < (int)pcVar42) {\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);\n            (**(code **)(puVar60 + 0x1539fc))(puVar32);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          while( true ) {\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n            if (iVar28 == 0) break;\n            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n          if (pIVar40->compression == B44Compression) goto LAB_002561e8;\n        }\n        pFVar12 = aFStack_5150;\n        pIVar15 = (Image *)(*pcVar61)(pIVar40,auStack_4144,0,pFVar12,pFVar45);\n        if (pIVar15 == (Image *)0x0) {\n          pFVar12 = (FILE *)0x605;\n          (**(code **)(puVar60 + 0x15395c))\n                    (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,\n                     pIVar40->magick + 0x130);\n          pIVar9 = pIVar40;\n          if (*(int *)(iVar8 + 0xc) == 0) {\n            pcVar61 = *(code **)(puVar60 + 0x1540c4);\n          }\n          else {\n            do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar26 = (**(code **)(puVar60 + 0x153eac))(pIVar40);\n        if (iVar26 == 0) break;\n        pIVar40 = (ImageInfo *)(**(code **)(puVar60 + 0x153e44))(pIVar40);\n        if (*(code **)(pIVar40->magick + 0x118) != (code *)0x0) {\n          pFVar12 = pFStack_5188;\n          pIVar15 = (Image *)(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150);\n          if (pIVar15 == (Image *)0x0) break;\n        }\n        pFStack_5188 = (FILE *)((int)&pFStack_5188->_flags + 1);\n      } while (*(int *)(iVar8 + 0xc) != 0);\n      pcVar61 = *(code **)(puVar60 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar61)(pIVar40);\n    }\n    if (iStack_3144 == *piVar21) {\n      return pIVar15;\n    }\n    (**(code **)(puVar60 + 0x153aa0))();\n  }\n  pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                               (*(int *)(puVar60 + 0x15331c) + 0xdd0,\n                                *(int *)(puVar60 + 0x153388) + -0x74dc,0x485,\n                                &pFVar12[-0xc1]._IO_save_base);\n  return pIVar15;\nLAB_00255f3c:\n  do {\n    if (*pbVar30 == 0x7d) {\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,0x5c);\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }\n    else {\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }\n    pbVar30 = pbVar30 + 1;\n  } while (pbVar30 != pbVar59);\nLAB_00255f78:\n  (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\nLAB_00255d60:\n  (**(code **)(puVar60 + 0x153a18))(pIVar40,10);\n  pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);\n  if (pFVar29 == (FILE *)0x0) goto LAB_00255d8c;\n  goto LAB_00255c90;\n}" type_identifier (pointer_declarator "* ReadMPCImage(ImageInfo *image_info,ExceptionInfo *exception)" * (function_declarator "ReadMPCImage(ImageInfo *image_info,ExceptionInfo *exception)" identifier (parameter_list "(ImageInfo *image_info,ExceptionInfo *exception)" ( (parameter_declaration "ImageInfo *image_info" type_identifier (pointer_declarator "*image_info" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  ushort uVar2;\n  undefined8 uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  int iVar8;\n  ImageInfo *pIVar9;\n  ImageInfo *pIVar10;\n  int iVar11;\n  FILE *pFVar12;\n  int iVar13;\n  uint uVar14;\n  Image *pIVar15;\n  void *pvVar16;\n  size_t sVar17;\n  double *pdVar18;\n  FILE *pFVar19;\n  undefined4 *puVar20;\n  int *piVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  undefined4 uVar27;\n  int iVar28;\n  FILE *pFVar29;\n  byte *pbVar30;\n  int *piVar31;\n  undefined1 *puVar32;\n  undefined1 *puVar33;\n  undefined1 *puVar34;\n  CompressionType CVar35;\n  int iVar36;\n  int iVar37;\n  FILE *pFVar38;\n  int iVar39;\n  ImageInfo *pIVar40;\n  undefined *puVar41;\n  char *pcVar42;\n  undefined1 uVar44;\n  uint uVar43;\n  FILE *pFVar45;\n  char *pcVar46;\n  int iVar47;\n  int iVar48;\n  int iVar49;\n  int iVar50;\n  undefined1 uVar51;\n  undefined1 uVar52;\n  char **ppcVar53;\n  int iVar54;\n  undefined4 uVar55;\n  int iVar56;\n  undefined4 unaff_s3;\n  FILE *unaff_s4;\n  FILE *unaff_s5;\n  int iVar57;\n  undefined1 uVar58;\n  FILE *unaff_s6;\n  FILE *unaff_s7;\n  byte *pbVar59;\n  undefined *puVar60;\n  FILE *unaff_s8;\n  code *pcVar61;\n  double dVar62;\n  double dVar63;\n  float fVar65;\n  double dVar64;\n  undefined2 uVar66;\n  double dVar67;\n  float fVar68;\n  double dVar69;\n  double dVar70;\n  double in_f20_21;\n  double dVar71;\n  double in_f22_23;\n  double in_f24_25;\n  double dVar72;\n  double dVar73;\n  double dVar74;\n  undefined8 uVar75;\n  FILE *pFStack_5188;\n  FILE aFStack_5150 [27];\n  undefined1 auStack_4144 [4096];\n  int iStack_3144;\n  ImageInfo *pIStack_3140;\n  ImageInfo *pIStack_313c;\n  undefined8 uStack_3138;\n  FILE *pFStack_3130;\n  FILE *pFStack_312c;\n  FILE *pFStack_3128;\n  FILE *pFStack_3124;\n  FILE *pFStack_3120;\n  code *pcStack_311c;\n  double dStack_3118;\n  double dStack_3110;\n  double dStack_3108;\n  undefined8 local_30d8;\n  undefined *local_30d0;\n  char *local_30cc;\n  ImageInfo *local_30c8;\n  int local_309c;\n  MagickOffsetType offset;\n  GeometryInfo geometry_info;\n  char cache_filename [4096];\n  char id [4096];\n  char keyword [4096];\n  \n  puVar60 = PTR___stack_chk_guard_003a9230;\n  uVar75 = CONCAT44(exception,unaff_s3);\n  iVar8 = *(int *)PTR___stack_chk_guard_003a9230;\n  if (image_info == (ImageInfo *)0x0) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xd78,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }\n  if (image_info->signature != 0xabacadab) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xda0,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }\n  if (image_info->debug != MagickFalse) {\n    local_30d8._4_4_ = image_info->filename;\n    local_30d8._0_4_ = (ExceptionInfo *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x1cac,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }\n  if (exception->signature != 0xabacadab) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x294c,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }\n  pIVar9 = (ImageInfo *)(*(code *)PTR_AcquireImage_003a960c)(image_info,exception);\n  pFVar45 = (FILE *)0x2;\n  pIVar40 = pIVar9;\n  local_309c = (*(code *)PTR_OpenBlob_003a924c)(image_info,pIVar9,2,exception);\n  if (local_309c == 0) {\n    (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n    pIVar15 = (Image *)0x0;\n  }\n  else {\n    pFVar45 = (FILE *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)((ImageInfo *)cache_filename,pIVar9->magick + 0x130);\n    pIVar40 = (ImageInfo *)cache_filename;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar75 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (FILE *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(pIVar9);\n      pIVar15 = (Image *)0x0;\n      image_info = (ImageInfo *)cache_filename;\n      uVar75 = CONCAT44(exception,unaff_s3);\n    }\n    else {\n      unaff_s5 = (FILE *)keyword;\n      pFVar45 = (FILE *)0x1000;\n      id[0] = '\0';\n      unaff_s4 = (FILE *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      offset._4_4_ = 0;\n      offset._0_4_ = 0;\n      pIVar10 = (ImageInfo *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = (FILE *)&geometry_info;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)((FILE *)&geometry_info);\n        unaff_s6 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar11 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        CVar35 = pIVar10->compression;\n        pIVar9->page = &DAT_00000008;\n        pFVar29 = (FILE *)(unaff_s4->_shortbuf + (CVar35 - 0x47));\n        pIVar9->temporary = 0x10;\n        uVar2 = *(ushort *)&pFVar29->_flags;\n        pFVar12 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = pFVar29;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = pFVar29;\n            if (pFVar12 == (FILE *)&DAT_0000003a) break;\n            if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }\n            CVar35 = pIVar10->compression;\n            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = pFVar29;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n        iVar13 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = pFVar12;\n        if ((((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))) ||\n           ((char *)0x3f < pIVar9->page + -1)) {\n          uVar55 = 0x31d;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -400;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = image_info->filename;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n          pIVar15 = (Image *)0x0;\n          image_info = pIVar10;\n          goto LAB_002546dc;\n        }\n        iVar13 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar11 != iVar13) {\n          uVar55 = 0x323;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (pIVar9->file != (FILE *)0x0) {\n          unaff_s6 = (FILE *)0x0;\n          puVar32 = (undefined1 *)0x1000;\n          pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n          pIVar9->blob = pFVar29;\n          do {\n            *(undefined1 *)&pFVar29->_flags = 0;\n            pFVar19 = pFVar29;\n            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }\n            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n            if (iVar11 == -1) break;\n            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);\n            *(char *)&pFVar19->_flags = (char)iVar11;\n            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);\n            unaff_s4 = pFVar19;\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n          } while (iVar11 != 0);\n        }\n        pIVar40 = (ImageInfo *)0x0;\n        unaff_s4 = (FILE *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9);\n        if (pIVar9->compression == B44Compression) {\n          pcVar42 = pIVar9->scenes;\n          uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n          uVar14 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar43 = uVar14 * (int)pcVar42;\n          if ((int)((ulonglong)uVar75 >> 0x20) == 0) {\n            uVar43 = (uint)((uint)uVar75 < uVar43);\n            uVar75 = CONCAT44(uVar14,uVar43);\n            if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          pIVar40 = (ImageInfo *)0x58;\n          sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1);\n          pIVar9->scene = sVar17;\n          if (sVar17 == 0) {\n            uVar55 = 0x381;\nLAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n            local_30d8._0_4_ = (ExceptionInfo *)0x190;\n            unaff_s8 = pFVar12;\n            goto LAB_002546ac;\n          }\n          uVar75 = CONCAT44(uVar14,uVar43);\n          if (pIVar9->scenes != (char *)0x0) {\n            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);\n            if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }\n            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);\n            pFVar45 = pFVar29;\n            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);\n            pcVar42 = pIVar9->scenes;\n            iVar13 = (int)pcVar42 * uVar14;\n            uVar75 = CONCAT44(iVar13,pFVar29);\n            if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n            uVar75 = CONCAT44(iVar13,pFVar29);\n          }\n        }\n        uVar55 = (undefined4)((ulonglong)uVar75 >> 0x20);\n        uVar27 = (undefined4)uVar75;\n        if (((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) &&\n           ((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar11 == 0) {\nLAB_002550a8:\n          uVar55 = 0x3db;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284;\n          local_30d8._0_4_ = (ExceptionInfo *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar11 == 0) goto LAB_002550a8;\n        pFVar45 = (FILE *)0x1;\n        pIVar40 = (ImageInfo *)cache_filename;\n        local_30d8._0_4_ = exception;\n        iVar11 = (*(code *)PTR_PersistPixelCache_003a8dc0)\n                           (pIVar9,(ImageInfo *)cache_filename,1,&offset);\n        if (iVar11 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception);\n          uVar55 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          pIVar10 = (ImageInfo *)exception;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_EOFBlob_003a9748)(pIVar9);\n        if (iVar11 != 0) {\n          puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20);\n          local_30cc = pIVar9->magick + 0x130;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n          local_30c8 = pIVar10;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000);\n          (*(code *)PTR_DestroyString_003a9074)(pIVar10);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\nLAB_002548a8:\n          pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);\n          image_info = pIVar10;\n          unaff_s8 = pFVar12;\n          uVar75 = CONCAT44(uVar55,uVar27);\n          goto LAB_002546dc;\n        }\n        uVar55 = 0xffffffff;\n        uVar75 = CONCAT44(0xffffffff,uVar27);\n        while( true ) {\n          unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n          unaff_s4 = (FILE *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (FILE *)0xffffffff;\n          unaff_s8 = pFVar12;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (FILE *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          pFVar12 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        pIVar40 = pIVar9;\n        pFVar45 = (FILE *)exception;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(image_info);\n        iVar11 = (*(code *)PTR_GetNextImageInList_003a9470)(pIVar9);\n        if (iVar11 == 0) break;\n        pIVar9 = (ImageInfo *)(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9);\n        uVar75 = (*(code *)PTR_TellBlob_003a931c)(pIVar9);\n        pFVar45 = (FILE *)((ulonglong)uVar75 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n        pIVar40 = (ImageInfo *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(pIVar9,pIVar40,pFVar45,(int)uVar75);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n      pFVar12 = unaff_s8;\nLAB_00253dbc:\n      pIVar15 = (Image *)(*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n      image_info = pIVar10;\n      unaff_s8 = pFVar12;\n    }\n  }\nLAB_002546dc:\n  if (iVar8 == *(int *)puVar60) {\n    return pIVar15;\n  }\n  pcVar61 = WriteMPCImage;\n  puVar60 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  piVar21 = *(int **)(puVar60 + 0x153c6c);\n  iStack_3144 = *piVar21;\n  pIStack_3140 = pIVar9;\n  pIStack_313c = image_info;\n  pFStack_3130 = unaff_s4;\n  pFStack_312c = unaff_s5;\n  pFStack_3128 = unaff_s6;\n  pFStack_3124 = unaff_s7;\n  pFStack_3120 = unaff_s8;\n  pcStack_311c = pcVar61;\n  dStack_3118 = in_f20_21;\n  dStack_3110 = in_f22_23;\n  dStack_3108 = in_f24_25;\n  uStack_3138 = uVar75;\n  if (iVar8 == 0) {\n    pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xd78,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x483,\n                                  *(int *)(puVar60 + 0x153388) + -0x7274);\n    return pIVar15;\n  }\n  pFVar12 = *(FILE **)(puVar60 + 0x153388);\n  if (*(int *)(iVar8 + 0x3214) != -0x54535255) {\n    pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xda0,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x484,\n                                  &pFVar12[-0xc1]._IO_save_base);\n    return pIVar15;\n  }\n  if (pIVar40 != (ImageInfo *)0x0) {\n    if (*(int *)((int)&pIVar40[1].background_color.green + 4) != -0x54535255) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x153324) + -0x3784,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x486,\n                                    &pFVar12[-0xc1]._IO_save_base);\n      return pIVar15;\n    }\n    if (pIVar40[1].background_color.depth != 0) {\n      (**(code **)(puVar60 + 0x153c1c))\n                (0x8000,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                 *(int *)(puVar60 + 0x153388) + -0x7284,0x488,*(int *)(puVar60 + 0x153320) + -0x62ac\n                 ,pIVar40->magick + 0x130);\n    }\n    if (pFVar45 == (FILE *)0x0) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x1cac,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x489,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);\n      return pIVar15;\n    }\n    if (pFVar45->_IO_buf_base != (char *)0xabacadab) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x294c,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x48a,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);\n      return pIVar15;\n    }\n    pFVar12 = pFVar45;\n    iVar11 = (**(code **)(puVar60 + 0x153c88))(iVar8,pIVar40,4,pFVar45);\n    if (iVar11 == 0) {\nLAB_0025569c:\n      pIVar15 = (Image *)0x0;\n    }\n    else {\n      iVar54 = *(int *)(puVar60 + 0x15331c);\n      iVar56 = *(int *)(puVar60 + 0x15331c);\n      iVar57 = *(int *)(puVar60 + 0x15331c);\n      (**(code **)(puVar60 + 0x154278))(auStack_4144,pIVar40->magick + 0x130,0xffa);\n      ppcVar53 = &aFStack_5150[0]._IO_read_base;\n      iVar11 = *(int *)(puVar60 + 0x153388);\n      iVar13 = *(int *)(puVar60 + 0x153388);\n      iVar22 = *(int *)(puVar60 + 0x153388);\n      (**(code **)(puVar60 + 0x1539e4))(*(int *)(puVar60 + 0x153328) + -0x50b8,auStack_4144);\n      aFStack_5150[0]._IO_read_ptr = (char *)0x0;\n      aFStack_5150[0]._flags = 0;\n      (**(code **)(puVar60 + 0x153cb4))(pIVar40);\n      dVar74 = *(double *)(iVar54 + 0x1418);\n      iVar23 = *(int *)(puVar60 + 0x153388);\n      dVar73 = *(double *)(iVar56 + 0x1400);\n      iVar36 = *(int *)(puVar60 + 0x153388);\n      dVar72 = *(double *)(iVar57 + 0x1410);\n      iVar24 = *(int *)(puVar60 + 0x153388);\n      pFStack_5188 = (FILE *)0x0;\n      iVar25 = *(int *)(puVar60 + 0x153388);\n      do {\n        (**(code **)(puVar60 + 0x154260))(pIVar40,pIVar40->compression,pFVar45);\n        iVar26 = (**(code **)(puVar60 + 0x153c24))(pIVar40,1);\n        if (pIVar40->compression == B44Compression) {\n          pcVar42 = pIVar40->page;\n          if (pcVar42 == (char *)0x0) {\n            pcVar42 = (char *)0x1;\n          }\n          else {\n            pcVar46 = (char *)0x0;\n            if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }\n            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));\n            if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }\n          }\n          if (pcVar42 < pIVar40->scenes) {\n            (**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);\n          }\n        }\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar11 + -0x7434);\n        uVar55 = (**(code **)(puVar60 + 0x154128))(0);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar13 + -0x741c,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(5,pIVar40->compression);\n        dVar71 = (double)(int)pIVar40->scenes;\n        if ((int)pIVar40->scenes < 0) {\n          dVar71 = dVar71 + dVar74;\n        }\n        uVar27 = (**(code **)(puVar60 + 0x15379c))(0x3a,*(undefined4 *)(pIVar40->magick + 0xac));\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar22 + -0x7990,uVar55,dVar71,uVar27);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar36 + -0x7404);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        dVar71 = (double)(int)pIVar40->page;\n        if ((int)pIVar40->page < 0) {\n          dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar62 = (double)(int)pIVar40->extract;\n        if ((int)pIVar40->extract < 0) {\n          dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar63 = (double)(int)pIVar40->size;\n        if ((int)pIVar40->size < 0) {\n          dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n        }\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar23 + -0x73d0);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x90) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x49);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,\n                     dVar71);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(9,pIVar40->orientation);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar24 + -0x7928,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x44) == 0) {\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (*(int *)(pIVar40->magick + 0x4c) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar55 = (*pcVar61)(0x18);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (pIVar40->temporary != MagickFalse) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (*(int *)(pIVar40->magick + 0x4c) != 0) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (pIVar40->temporary != MagickFalse) {\nLAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);\n            dVar63 = (double)(int)pIVar40->adjoin;\n            if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        if (pIVar40->stream != (StreamHandler)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x41);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = *(double *)(pIVar40->magick + 8);\n        dVar67 = *(double *)(pIVar40->magick + 0x10);\n        if ((dVar71 != 0.0) || (dVar67 != 0.0)) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n          dVar62 = dVar67;\n        }\n        iVar37 = *(int *)(pIVar40->magick + 0x18);\n        iVar39 = *(int *)(pIVar40->magick + 0x1c);\n        iVar47 = *(int *)(pIVar40->magick + 0x20);\n        iVar28 = *(int *)(pIVar40->magick + 0x24);\n        if ((iVar37 == 0) && (iVar39 == 0)) {\n          if ((iVar47 != 0) || (iVar28 != 0)) {\n            uVar55 = SUB84(dVar63,0);\n            dVar63 = (double)CONCAT44(iVar28,uVar55);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar62 = (double)iVar39;\n          if (iVar39 < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar63 = (double)iVar37;\n          if (iVar37 < 0) {\n            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n          }\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28);\nLAB_00255ed4:\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        iVar28 = *(int *)(pIVar40->magick + 0x8c);\n        if ((*(int *)(pIVar40->magick + 0x88) != 0) ||\n           (pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0)) {\n          dVar63 = (double)CONCAT44(iVar28,SUB84(dVar63,0));\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,\n                     *(int *)(pIVar40->magick + 0x88),iVar28);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pcVar61 = *(code **)(puVar60 + 0x153eac);\n        }\n        iVar28 = (*pcVar61)(pIVar40);\n        iVar37 = *(int *)(pIVar40->magick + 0x5c);\n        if (iVar28 == 0) {\n          iVar28 = (**(code **)(puVar60 + 0x1536e8))(pIVar40);\n          if (iVar28 != 0) goto LAB_00255b3c;\n          if (iVar37 != 0) {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x6c);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x60);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          if (*(int *)(pIVar40->magick + 0x68) != 100) {\n            dVar63 = (double)*(int *)(pIVar40->magick + 0x68);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);\n          if (*(int *)(pIVar40->magick + 0x6c) < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar71 = (double)*(int *)(pIVar40->magick + 0x60);\n          if (*(int *)(pIVar40->magick + 0x60) < 0) {\n            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n          }\n          if (iVar37 == 0) {\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);\n            dVar63 = dVar62;\n            dVar62 = dVar71;\n          }\n          else {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x50) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x21);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x58) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x15);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->client_data != (void *)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x23);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = (double)(pIVar40->transparent_color).count;\n        if (dVar71 != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n        }\n        if (*(double *)&pIVar40->verbose != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar62 = *(double *)&pIVar40->options;\n          dVar63 = *(double *)&pIVar40->verbose;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->affirm != MagickFalse) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x36);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->cache == (void *)0x0) {\nLAB_00255c28:\n          pFVar12 = pIVar40->file;\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          if (iVar28 == 0) goto LAB_00255c28;\n          iVar37 = *(int *)(puVar60 + 0x153388);\n          do {\n            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          } while (iVar28 != 0);\n          pFVar12 = pIVar40->file;\n        }\n        if (pFVar12 != (FILE *)0x0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        (**(code **)(puVar60 + 0x1536d0))(pIVar40);\n        pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);\n        if (pFVar29 != (FILE *)0x0) {\n          iVar28 = *(int *)(puVar60 + 0x153388);\nLAB_00255c90:\n          pFVar12 = pFVar29;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pbVar30 = (byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45);\n          if (pbVar30 != (byte *)0x0) {\n            iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);\n            if (iVar37 != 0) {\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n            iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n            if (iVar39 == 0) {\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar25 + -0x770c);\n        if (pIVar40->file != (FILE *)0x0) {\n          if (pIVar40->blob != (void *)0x0) {\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40);\n          }\n          (**(code **)(puVar60 + 0x153a18))(pIVar40,0);\n        }\n        if (pIVar40->cache == (void *)0x0) {\n          if (pIVar40->compression == B44Compression) {\nLAB_002561e8:\n            uVar14 = (uint)(iVar26 * 3) >> 3;\n            puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);\n            if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;\n            pcVar42 = pIVar40->scenes;\n            if (0 < (int)pcVar42) {\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);\n            (**(code **)(puVar60 + 0x1539fc))(puVar32);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          while( true ) {\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n            if (iVar28 == 0) break;\n            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n          if (pIVar40->compression == B44Compression) goto LAB_002561e8;\n        }\n        pFVar12 = aFStack_5150;\n        pIVar15 = (Image *)(*pcVar61)(pIVar40,auStack_4144,0,pFVar12,pFVar45);\n        if (pIVar15 == (Image *)0x0) {\n          pFVar12 = (FILE *)0x605;\n          (**(code **)(puVar60 + 0x15395c))\n                    (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,\n                     pIVar40->magick + 0x130);\n          pIVar9 = pIVar40;\n          if (*(int *)(iVar8 + 0xc) == 0) {\n            pcVar61 = *(code **)(puVar60 + 0x1540c4);\n          }\n          else {\n            do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar26 = (**(code **)(puVar60 + 0x153eac))(pIVar40);\n        if (iVar26 == 0) break;\n        pIVar40 = (ImageInfo *)(**(code **)(puVar60 + 0x153e44))(pIVar40);\n        if (*(code **)(pIVar40->magick + 0x118) != (code *)0x0) {\n          pFVar12 = pFStack_5188;\n          pIVar15 = (Image *)(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150);\n          if (pIVar15 == (Image *)0x0) break;\n        }\n        pFStack_5188 = (FILE *)((int)&pFStack_5188->_flags + 1);\n      } while (*(int *)(iVar8 + 0xc) != 0);\n      pcVar61 = *(code **)(puVar60 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar61)(pIVar40);\n    }\n    if (iStack_3144 == *piVar21) {\n      return pIVar15;\n    }\n    (**(code **)(puVar60 + 0x153aa0))();\n  }\n  pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                               (*(int *)(puVar60 + 0x15331c) + 0xdd0,\n                                *(int *)(puVar60 + 0x153388) + -0x74dc,0x485,\n                                &pFVar12[-0xc1]._IO_save_base);\n  return pIVar15;\nLAB_00255f3c:\n  do {\n    if (*pbVar30 == 0x7d) {\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,0x5c);\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }\n    else {\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }\n    pbVar30 = pbVar30 + 1;\n  } while (pbVar30 != pbVar59);\nLAB_00255f78:\n  (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\nLAB_00255d60:\n  (**(code **)(puVar60 + 0x153a18))(pIVar40,10);\n  pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);\n  if (pFVar29 == (FILE *)0x0) goto LAB_00255d8c;\n  goto LAB_00255c90;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "ImageInfo *pIVar9;" type_identifier (pointer_declarator "*pIVar9" * identifier) ;) (declaration "ImageInfo *pIVar10;" type_identifier (pointer_declarator "*pIVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "FILE *pFVar12;" type_identifier (pointer_declarator "*pFVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "Image *pIVar15;" type_identifier (pointer_declarator "*pIVar15" * identifier) ;) (declaration "void *pvVar16;" primitive_type (pointer_declarator "*pvVar16" * identifier) ;) (declaration "size_t sVar17;" primitive_type identifier ;) (declaration "double *pdVar18;" primitive_type (pointer_declarator "*pdVar18" * identifier) ;) (declaration "FILE *pFVar19;" type_identifier (pointer_declarator "*pFVar19" * identifier) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "FILE *pFVar29;" type_identifier (pointer_declarator "*pFVar29" * identifier) ;) (declaration "byte *pbVar30;" type_identifier (pointer_declarator "*pbVar30" * identifier) ;) (declaration "int *piVar31;" primitive_type (pointer_declarator "*piVar31" * identifier) ;) (declaration "undefined1 *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "undefined1 *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "undefined1 *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "CompressionType CVar35;" type_identifier identifier ;) (declaration "int iVar36;" primitive_type identifier ;) (declaration "int iVar37;" primitive_type identifier ;) (declaration "FILE *pFVar38;" type_identifier (pointer_declarator "*pFVar38" * identifier) ;) (declaration "int iVar39;" primitive_type identifier ;) (declaration "ImageInfo *pIVar40;" type_identifier (pointer_declarator "*pIVar40" * identifier) ;) (declaration "undefined *puVar41;" type_identifier (pointer_declarator "*puVar41" * identifier) ;) (declaration "char *pcVar42;" primitive_type (pointer_declarator "*pcVar42" * identifier) ;) (declaration "undefined1 uVar44;" type_identifier identifier ;) (declaration "uint uVar43;" type_identifier identifier ;) (declaration "FILE *pFVar45;" type_identifier (pointer_declarator "*pFVar45" * identifier) ;) (declaration "char *pcVar46;" primitive_type (pointer_declarator "*pcVar46" * identifier) ;) (declaration "int iVar47;" primitive_type identifier ;) (declaration "int iVar48;" primitive_type identifier ;) (declaration "int iVar49;" primitive_type identifier ;) (declaration "int iVar50;" primitive_type identifier ;) (declaration "undefined1 uVar51;" type_identifier identifier ;) (declaration "undefined1 uVar52;" type_identifier identifier ;) (declaration "char **ppcVar53;" primitive_type (pointer_declarator "**ppcVar53" * (pointer_declarator "*ppcVar53" * identifier)) ;) (declaration "int iVar54;" primitive_type identifier ;) (declaration "undefined4 uVar55;" type_identifier identifier ;) (declaration "int iVar56;" primitive_type identifier ;) (declaration "undefined4 unaff_s3;" type_identifier identifier ;) (declaration "FILE *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "FILE *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "int iVar57;" primitive_type identifier ;) (declaration "undefined1 uVar58;" type_identifier identifier ;) (declaration "FILE *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "FILE *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "byte *pbVar59;" type_identifier (pointer_declarator "*pbVar59" * identifier) ;) (declaration "undefined *puVar60;" type_identifier (pointer_declarator "*puVar60" * identifier) ;) (declaration "FILE *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "code *pcVar61;" type_identifier (pointer_declarator "*pcVar61" * identifier) ;) (declaration "double dVar62;" primitive_type identifier ;) (declaration "double dVar63;" primitive_type identifier ;) (declaration "float fVar65;" primitive_type identifier ;) (declaration "double dVar64;" primitive_type identifier ;) (declaration "undefined2 uVar66;" type_identifier identifier ;) (declaration "double dVar67;" primitive_type identifier ;) (declaration "float fVar68;" primitive_type identifier ;) (declaration "double dVar69;" primitive_type identifier ;) (declaration "double dVar70;" primitive_type identifier ;) (declaration "double in_f20_21;" primitive_type identifier ;) (declaration "double dVar71;" primitive_type identifier ;) (declaration "double in_f22_23;" primitive_type identifier ;) (declaration "double in_f24_25;" primitive_type identifier ;) (declaration "double dVar72;" primitive_type identifier ;) (declaration "double dVar73;" primitive_type identifier ;) (declaration "double dVar74;" primitive_type identifier ;) (declaration "undefined8 uVar75;" type_identifier identifier ;) (declaration "FILE *pFStack_5188;" type_identifier (pointer_declarator "*pFStack_5188" * identifier) ;) (declaration "FILE aFStack_5150 [27];" type_identifier (array_declarator "aFStack_5150 [27]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_4144 [4096];" type_identifier (array_declarator "auStack_4144 [4096]" identifier [ number_literal ]) ;) (declaration "int iStack_3144;" primitive_type identifier ;) (declaration "ImageInfo *pIStack_3140;" type_identifier (pointer_declarator "*pIStack_3140" * identifier) ;) (declaration "ImageInfo *pIStack_313c;" type_identifier (pointer_declarator "*pIStack_313c" * identifier) ;) (declaration "undefined8 uStack_3138;" type_identifier identifier ;) (declaration "FILE *pFStack_3130;" type_identifier (pointer_declarator "*pFStack_3130" * identifier) ;) (declaration "FILE *pFStack_312c;" type_identifier (pointer_declarator "*pFStack_312c" * identifier) ;) (declaration "FILE *pFStack_3128;" type_identifier (pointer_declarator "*pFStack_3128" * identifier) ;) (declaration "FILE *pFStack_3124;" type_identifier (pointer_declarator "*pFStack_3124" * identifier) ;) (declaration "FILE *pFStack_3120;" type_identifier (pointer_declarator "*pFStack_3120" * identifier) ;) (declaration "code *pcStack_311c;" type_identifier (pointer_declarator "*pcStack_311c" * identifier) ;) (declaration "double dStack_3118;" primitive_type identifier ;) (declaration "double dStack_3110;" primitive_type identifier ;) (declaration "double dStack_3108;" primitive_type identifier ;) (declaration "undefined8 local_30d8;" type_identifier identifier ;) (declaration "undefined *local_30d0;" type_identifier (pointer_declarator "*local_30d0" * identifier) ;) (declaration "char *local_30cc;" primitive_type (pointer_declarator "*local_30cc" * identifier) ;) (declaration "ImageInfo *local_30c8;" type_identifier (pointer_declarator "*local_30c8" * identifier) ;) (declaration "int local_309c;" primitive_type identifier ;) (declaration "MagickOffsetType offset;" type_identifier identifier ;) (declaration "GeometryInfo geometry_info;" type_identifier identifier ;) (declaration "char cache_filename [4096];" primitive_type (array_declarator "cache_filename [4096]" identifier [ number_literal ]) ;) (declaration "char id [4096];" primitive_type (array_declarator "id [4096]" identifier [ number_literal ]) ;) (declaration "char keyword [4096];" primitive_type (array_declarator "keyword [4096]" identifier [ number_literal ]) ;) (expression_statement "puVar60 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar60 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "uVar75 = CONCAT44(exception,unaff_s3);" (assignment_expression "uVar75 = CONCAT44(exception,unaff_s3)" identifier = (call_expression "CONCAT44(exception,unaff_s3)" identifier (argument_list "(exception,unaff_s3)" ( identifier , identifier )))) ;) (expression_statement "iVar8 = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "iVar8 = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (image_info == (ImageInfo *)0x0) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xd78,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }" if (parenthesized_expression "(image_info == (ImageInfo *)0x0)" ( (binary_expression "image_info == (ImageInfo *)0x0" identifier == (cast_expression "(ImageInfo *)0x0" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xd78,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }" { (expression_statement "pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xd78,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xd78,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" identifier = (cast_expression "(Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xd78,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xd78,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0xd78,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (binary_expression "PTR_LAB_003a88e0 + 0xd78" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) , number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" identifier + number_literal) ))))) ;) (return_statement "return pIVar15;" return identifier ;) })) (if_statement "if (image_info->signature != 0xabacadab) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xda0,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }" if (parenthesized_expression "(image_info->signature != 0xabacadab)" ( (binary_expression "image_info->signature != 0xabacadab" (field_expression "image_info->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xda0,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }" { (expression_statement "pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xda0,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xda0,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" identifier = (cast_expression "(Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xda0,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0xda0,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0xda0,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (binary_expression "PTR_LAB_003a88e0 + 0xda0" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) , number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" identifier + number_literal) ))))) ;) (return_statement "return pIVar15;" return identifier ;) })) (if_statement "if (image_info->debug != MagickFalse) {\n    local_30d8._4_4_ = image_info->filename;\n    local_30d8._0_4_ = (ExceptionInfo *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }" if (parenthesized_expression "(image_info->debug != MagickFalse)" ( (binary_expression "image_info->debug != MagickFalse" (field_expression "image_info->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    local_30d8._4_4_ = image_info->filename;\n    local_30d8._0_4_ = (ExceptionInfo *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }" { (expression_statement "local_30d8._4_4_ = image_info->filename;" (assignment_expression "local_30d8._4_4_ = image_info->filename" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (field_expression "image_info->filename" identifier -> field_identifier)) ;) (expression_statement "local_30d8._0_4_ = (ExceptionInfo *)(PTR_s_t_to_left_003a88e4 + -0x62ac);" (assignment_expression "local_30d8._0_4_ = (ExceptionInfo *)(PTR_s_t_to_left_003a88e4 + -0x62ac)" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ExceptionInfo *)(PTR_s_t_to_left_003a88e4 + -0x62ac)" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x62ac)" ( (binary_expression "PTR_s_t_to_left_003a88e4 + -0x62ac" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" * (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5)" ( number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) , number_literal ))) ;) })) (if_statement "if (exception == (ExceptionInfo *)0x0) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x1cac,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }" if (parenthesized_expression "(exception == (ExceptionInfo *)0x0)" ( (binary_expression "exception == (ExceptionInfo *)0x0" identifier == (cast_expression "(ExceptionInfo *)0x0" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x1cac,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }" { (expression_statement "pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x1cac,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x1cac,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" identifier = (cast_expression "(Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x1cac,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x1cac,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x1cac,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1cac" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) , number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" identifier + number_literal) ))))) ;) (return_statement "return pIVar15;" return identifier ;) })) (if_statement "if (exception->signature != 0xabacadab) {\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x294c,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }" if (parenthesized_expression "(exception->signature != 0xabacadab)" ( (binary_expression "exception->signature != 0xabacadab" (field_expression "exception->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x294c,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return pIVar15;\n  }" { (expression_statement "pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x294c,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "pIVar15 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x294c,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" identifier = (cast_expression "(Image *)(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x294c,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                                 (PTR_LAB_003a88e0 + 0x294c,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x294c,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                                  PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (binary_expression "PTR_LAB_003a88e0 + 0x294c" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) , number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" identifier + number_literal) ))))) ;) (return_statement "return pIVar15;" return identifier ;) })) (expression_statement "pIVar9 = (ImageInfo *)(*(code *)PTR_AcquireImage_003a960c)(image_info,exception);" (assignment_expression "pIVar9 = (ImageInfo *)(*(code *)PTR_AcquireImage_003a960c)(image_info,exception)" identifier = (cast_expression "(ImageInfo *)(*(code *)PTR_AcquireImage_003a960c)(image_info,exception)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireImage_003a960c)(image_info,exception)" (parenthesized_expression "(*(code *)PTR_AcquireImage_003a960c)" ( (pointer_expression "*(code *)PTR_AcquireImage_003a960c" * (cast_expression "(code *)PTR_AcquireImage_003a960c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image_info,exception)" ( identifier , identifier ))))) ;) (expression_statement "pFVar45 = (FILE *)0x2;" (assignment_expression "pFVar45 = (FILE *)0x2" identifier = (cast_expression "(FILE *)0x2" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pIVar40 = pIVar9;" (assignment_expression "pIVar40 = pIVar9" identifier = identifier) ;) (expression_statement "local_309c = (*(code *)PTR_OpenBlob_003a924c)(image_info,pIVar9,2,exception);" (assignment_expression "local_309c = (*(code *)PTR_OpenBlob_003a924c)(image_info,pIVar9,2,exception)" identifier = (call_expression "(*(code *)PTR_OpenBlob_003a924c)(image_info,pIVar9,2,exception)" (parenthesized_expression "(*(code *)PTR_OpenBlob_003a924c)" ( (pointer_expression "*(code *)PTR_OpenBlob_003a924c" * (cast_expression "(code *)PTR_OpenBlob_003a924c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image_info,pIVar9,2,exception)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (local_309c == 0) {\n    (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n    pIVar15 = (Image *)0x0;\n  }\n  else {\n    pFVar45 = (FILE *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)((ImageInfo *)cache_filename,pIVar9->magick + 0x130);\n    pIVar40 = (ImageInfo *)cache_filename;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar75 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (FILE *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(pIVar9);\n      pIVar15 = (Image *)0x0;\n      image_info = (ImageInfo *)cache_filename;\n      uVar75 = CONCAT44(exception,unaff_s3);\n    }\n    else {\n      unaff_s5 = (FILE *)keyword;\n      pFVar45 = (FILE *)0x1000;\n      id[0] = '\0';\n      unaff_s4 = (FILE *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      offset._4_4_ = 0;\n      offset._0_4_ = 0;\n      pIVar10 = (ImageInfo *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = (FILE *)&geometry_info;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)((FILE *)&geometry_info);\n        unaff_s6 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar11 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        CVar35 = pIVar10->compression;\n        pIVar9->page = &DAT_00000008;\n        pFVar29 = (FILE *)(unaff_s4->_shortbuf + (CVar35 - 0x47));\n        pIVar9->temporary = 0x10;\n        uVar2 = *(ushort *)&pFVar29->_flags;\n        pFVar12 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = pFVar29;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = pFVar29;\n            if (pFVar12 == (FILE *)&DAT_0000003a) break;\n            if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }\n            CVar35 = pIVar10->compression;\n            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = pFVar29;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n        iVar13 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = pFVar12;\n        if ((((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))) ||\n           ((char *)0x3f < pIVar9->page + -1)) {\n          uVar55 = 0x31d;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -400;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = image_info->filename;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n          pIVar15 = (Image *)0x0;\n          image_info = pIVar10;\n          goto LAB_002546dc;\n        }\n        iVar13 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar11 != iVar13) {\n          uVar55 = 0x323;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (pIVar9->file != (FILE *)0x0) {\n          unaff_s6 = (FILE *)0x0;\n          puVar32 = (undefined1 *)0x1000;\n          pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n          pIVar9->blob = pFVar29;\n          do {\n            *(undefined1 *)&pFVar29->_flags = 0;\n            pFVar19 = pFVar29;\n            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }\n            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n            if (iVar11 == -1) break;\n            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);\n            *(char *)&pFVar19->_flags = (char)iVar11;\n            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);\n            unaff_s4 = pFVar19;\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n          } while (iVar11 != 0);\n        }\n        pIVar40 = (ImageInfo *)0x0;\n        unaff_s4 = (FILE *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9);\n        if (pIVar9->compression == B44Compression) {\n          pcVar42 = pIVar9->scenes;\n          uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n          uVar14 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar43 = uVar14 * (int)pcVar42;\n          if ((int)((ulonglong)uVar75 >> 0x20) == 0) {\n            uVar43 = (uint)((uint)uVar75 < uVar43);\n            uVar75 = CONCAT44(uVar14,uVar43);\n            if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          pIVar40 = (ImageInfo *)0x58;\n          sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1);\n          pIVar9->scene = sVar17;\n          if (sVar17 == 0) {\n            uVar55 = 0x381;\nLAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n            local_30d8._0_4_ = (ExceptionInfo *)0x190;\n            unaff_s8 = pFVar12;\n            goto LAB_002546ac;\n          }\n          uVar75 = CONCAT44(uVar14,uVar43);\n          if (pIVar9->scenes != (char *)0x0) {\n            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);\n            if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }\n            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);\n            pFVar45 = pFVar29;\n            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);\n            pcVar42 = pIVar9->scenes;\n            iVar13 = (int)pcVar42 * uVar14;\n            uVar75 = CONCAT44(iVar13,pFVar29);\n            if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n            uVar75 = CONCAT44(iVar13,pFVar29);\n          }\n        }\n        uVar55 = (undefined4)((ulonglong)uVar75 >> 0x20);\n        uVar27 = (undefined4)uVar75;\n        if (((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) &&\n           ((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar11 == 0) {\nLAB_002550a8:\n          uVar55 = 0x3db;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284;\n          local_30d8._0_4_ = (ExceptionInfo *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar11 == 0) goto LAB_002550a8;\n        pFVar45 = (FILE *)0x1;\n        pIVar40 = (ImageInfo *)cache_filename;\n        local_30d8._0_4_ = exception;\n        iVar11 = (*(code *)PTR_PersistPixelCache_003a8dc0)\n                           (pIVar9,(ImageInfo *)cache_filename,1,&offset);\n        if (iVar11 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception);\n          uVar55 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          pIVar10 = (ImageInfo *)exception;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_EOFBlob_003a9748)(pIVar9);\n        if (iVar11 != 0) {\n          puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20);\n          local_30cc = pIVar9->magick + 0x130;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n          local_30c8 = pIVar10;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000);\n          (*(code *)PTR_DestroyString_003a9074)(pIVar10);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\nLAB_002548a8:\n          pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);\n          image_info = pIVar10;\n          unaff_s8 = pFVar12;\n          uVar75 = CONCAT44(uVar55,uVar27);\n          goto LAB_002546dc;\n        }\n        uVar55 = 0xffffffff;\n        uVar75 = CONCAT44(0xffffffff,uVar27);\n        while( true ) {\n          unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n          unaff_s4 = (FILE *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (FILE *)0xffffffff;\n          unaff_s8 = pFVar12;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (FILE *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          pFVar12 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        pIVar40 = pIVar9;\n        pFVar45 = (FILE *)exception;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(image_info);\n        iVar11 = (*(code *)PTR_GetNextImageInList_003a9470)(pIVar9);\n        if (iVar11 == 0) break;\n        pIVar9 = (ImageInfo *)(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9);\n        uVar75 = (*(code *)PTR_TellBlob_003a931c)(pIVar9);\n        pFVar45 = (FILE *)((ulonglong)uVar75 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n        pIVar40 = (ImageInfo *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(pIVar9,pIVar40,pFVar45,(int)uVar75);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n      pFVar12 = unaff_s8;\nLAB_00253dbc:\n      pIVar15 = (Image *)(*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n      image_info = pIVar10;\n      unaff_s8 = pFVar12;\n    }\n  }" if (parenthesized_expression "(local_309c == 0)" ( (binary_expression "local_309c == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n    pIVar15 = (Image *)0x0;\n  }" { (expression_statement "(*(code *)PTR_DestroyImageList_003a9510)(pIVar9);" (call_expression "(*(code *)PTR_DestroyImageList_003a9510)(pIVar9)" (parenthesized_expression "(*(code *)PTR_DestroyImageList_003a9510)" ( (pointer_expression "*(code *)PTR_DestroyImageList_003a9510" * (cast_expression "(code *)PTR_DestroyImageList_003a9510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))) ;) (expression_statement "pIVar15 = (Image *)0x0;" (assignment_expression "pIVar15 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pFVar45 = (FILE *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)((ImageInfo *)cache_filename,pIVar9->magick + 0x130);\n    pIVar40 = (ImageInfo *)cache_filename;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar75 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (FILE *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(pIVar9);\n      pIVar15 = (Image *)0x0;\n      image_info = (ImageInfo *)cache_filename;\n      uVar75 = CONCAT44(exception,unaff_s3);\n    }\n    else {\n      unaff_s5 = (FILE *)keyword;\n      pFVar45 = (FILE *)0x1000;\n      id[0] = '\0';\n      unaff_s4 = (FILE *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      offset._4_4_ = 0;\n      offset._0_4_ = 0;\n      pIVar10 = (ImageInfo *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = (FILE *)&geometry_info;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)((FILE *)&geometry_info);\n        unaff_s6 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar11 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        CVar35 = pIVar10->compression;\n        pIVar9->page = &DAT_00000008;\n        pFVar29 = (FILE *)(unaff_s4->_shortbuf + (CVar35 - 0x47));\n        pIVar9->temporary = 0x10;\n        uVar2 = *(ushort *)&pFVar29->_flags;\n        pFVar12 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = pFVar29;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = pFVar29;\n            if (pFVar12 == (FILE *)&DAT_0000003a) break;\n            if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }\n            CVar35 = pIVar10->compression;\n            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = pFVar29;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n        iVar13 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = pFVar12;\n        if ((((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))) ||\n           ((char *)0x3f < pIVar9->page + -1)) {\n          uVar55 = 0x31d;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -400;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = image_info->filename;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n          pIVar15 = (Image *)0x0;\n          image_info = pIVar10;\n          goto LAB_002546dc;\n        }\n        iVar13 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar11 != iVar13) {\n          uVar55 = 0x323;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (pIVar9->file != (FILE *)0x0) {\n          unaff_s6 = (FILE *)0x0;\n          puVar32 = (undefined1 *)0x1000;\n          pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n          pIVar9->blob = pFVar29;\n          do {\n            *(undefined1 *)&pFVar29->_flags = 0;\n            pFVar19 = pFVar29;\n            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }\n            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n            if (iVar11 == -1) break;\n            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);\n            *(char *)&pFVar19->_flags = (char)iVar11;\n            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);\n            unaff_s4 = pFVar19;\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n          } while (iVar11 != 0);\n        }\n        pIVar40 = (ImageInfo *)0x0;\n        unaff_s4 = (FILE *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9);\n        if (pIVar9->compression == B44Compression) {\n          pcVar42 = pIVar9->scenes;\n          uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n          uVar14 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar43 = uVar14 * (int)pcVar42;\n          if ((int)((ulonglong)uVar75 >> 0x20) == 0) {\n            uVar43 = (uint)((uint)uVar75 < uVar43);\n            uVar75 = CONCAT44(uVar14,uVar43);\n            if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          pIVar40 = (ImageInfo *)0x58;\n          sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1);\n          pIVar9->scene = sVar17;\n          if (sVar17 == 0) {\n            uVar55 = 0x381;\nLAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n            local_30d8._0_4_ = (ExceptionInfo *)0x190;\n            unaff_s8 = pFVar12;\n            goto LAB_002546ac;\n          }\n          uVar75 = CONCAT44(uVar14,uVar43);\n          if (pIVar9->scenes != (char *)0x0) {\n            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);\n            if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }\n            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);\n            pFVar45 = pFVar29;\n            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);\n            pcVar42 = pIVar9->scenes;\n            iVar13 = (int)pcVar42 * uVar14;\n            uVar75 = CONCAT44(iVar13,pFVar29);\n            if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n            uVar75 = CONCAT44(iVar13,pFVar29);\n          }\n        }\n        uVar55 = (undefined4)((ulonglong)uVar75 >> 0x20);\n        uVar27 = (undefined4)uVar75;\n        if (((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) &&\n           ((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar11 == 0) {\nLAB_002550a8:\n          uVar55 = 0x3db;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284;\n          local_30d8._0_4_ = (ExceptionInfo *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar11 == 0) goto LAB_002550a8;\n        pFVar45 = (FILE *)0x1;\n        pIVar40 = (ImageInfo *)cache_filename;\n        local_30d8._0_4_ = exception;\n        iVar11 = (*(code *)PTR_PersistPixelCache_003a8dc0)\n                           (pIVar9,(ImageInfo *)cache_filename,1,&offset);\n        if (iVar11 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception);\n          uVar55 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          pIVar10 = (ImageInfo *)exception;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_EOFBlob_003a9748)(pIVar9);\n        if (iVar11 != 0) {\n          puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20);\n          local_30cc = pIVar9->magick + 0x130;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n          local_30c8 = pIVar10;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000);\n          (*(code *)PTR_DestroyString_003a9074)(pIVar10);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\nLAB_002548a8:\n          pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);\n          image_info = pIVar10;\n          unaff_s8 = pFVar12;\n          uVar75 = CONCAT44(uVar55,uVar27);\n          goto LAB_002546dc;\n        }\n        uVar55 = 0xffffffff;\n        uVar75 = CONCAT44(0xffffffff,uVar27);\n        while( true ) {\n          unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n          unaff_s4 = (FILE *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (FILE *)0xffffffff;\n          unaff_s8 = pFVar12;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (FILE *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          pFVar12 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        pIVar40 = pIVar9;\n        pFVar45 = (FILE *)exception;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(image_info);\n        iVar11 = (*(code *)PTR_GetNextImageInList_003a9470)(pIVar9);\n        if (iVar11 == 0) break;\n        pIVar9 = (ImageInfo *)(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9);\n        uVar75 = (*(code *)PTR_TellBlob_003a931c)(pIVar9);\n        pFVar45 = (FILE *)((ulonglong)uVar75 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n        pIVar40 = (ImageInfo *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(pIVar9,pIVar40,pFVar45,(int)uVar75);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n      pFVar12 = unaff_s8;\nLAB_00253dbc:\n      pIVar15 = (Image *)(*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n      image_info = pIVar10;\n      unaff_s8 = pFVar12;\n    }\n  }" else (compound_statement "{\n    pFVar45 = (FILE *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)((ImageInfo *)cache_filename,pIVar9->magick + 0x130);\n    pIVar40 = (ImageInfo *)cache_filename;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar75 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (FILE *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(pIVar9);\n      pIVar15 = (Image *)0x0;\n      image_info = (ImageInfo *)cache_filename;\n      uVar75 = CONCAT44(exception,unaff_s3);\n    }\n    else {\n      unaff_s5 = (FILE *)keyword;\n      pFVar45 = (FILE *)0x1000;\n      id[0] = '\0';\n      unaff_s4 = (FILE *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      offset._4_4_ = 0;\n      offset._0_4_ = 0;\n      pIVar10 = (ImageInfo *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = (FILE *)&geometry_info;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)((FILE *)&geometry_info);\n        unaff_s6 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar11 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        CVar35 = pIVar10->compression;\n        pIVar9->page = &DAT_00000008;\n        pFVar29 = (FILE *)(unaff_s4->_shortbuf + (CVar35 - 0x47));\n        pIVar9->temporary = 0x10;\n        uVar2 = *(ushort *)&pFVar29->_flags;\n        pFVar12 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = pFVar29;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = pFVar29;\n            if (pFVar12 == (FILE *)&DAT_0000003a) break;\n            if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }\n            CVar35 = pIVar10->compression;\n            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = pFVar29;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n        iVar13 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = pFVar12;\n        if ((((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))) ||\n           ((char *)0x3f < pIVar9->page + -1)) {\n          uVar55 = 0x31d;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -400;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = image_info->filename;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n          pIVar15 = (Image *)0x0;\n          image_info = pIVar10;\n          goto LAB_002546dc;\n        }\n        iVar13 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar11 != iVar13) {\n          uVar55 = 0x323;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (pIVar9->file != (FILE *)0x0) {\n          unaff_s6 = (FILE *)0x0;\n          puVar32 = (undefined1 *)0x1000;\n          pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n          pIVar9->blob = pFVar29;\n          do {\n            *(undefined1 *)&pFVar29->_flags = 0;\n            pFVar19 = pFVar29;\n            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }\n            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n            if (iVar11 == -1) break;\n            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);\n            *(char *)&pFVar19->_flags = (char)iVar11;\n            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);\n            unaff_s4 = pFVar19;\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n          } while (iVar11 != 0);\n        }\n        pIVar40 = (ImageInfo *)0x0;\n        unaff_s4 = (FILE *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9);\n        if (pIVar9->compression == B44Compression) {\n          pcVar42 = pIVar9->scenes;\n          uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n          uVar14 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar43 = uVar14 * (int)pcVar42;\n          if ((int)((ulonglong)uVar75 >> 0x20) == 0) {\n            uVar43 = (uint)((uint)uVar75 < uVar43);\n            uVar75 = CONCAT44(uVar14,uVar43);\n            if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          pIVar40 = (ImageInfo *)0x58;\n          sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1);\n          pIVar9->scene = sVar17;\n          if (sVar17 == 0) {\n            uVar55 = 0x381;\nLAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n            local_30d8._0_4_ = (ExceptionInfo *)0x190;\n            unaff_s8 = pFVar12;\n            goto LAB_002546ac;\n          }\n          uVar75 = CONCAT44(uVar14,uVar43);\n          if (pIVar9->scenes != (char *)0x0) {\n            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);\n            if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }\n            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);\n            pFVar45 = pFVar29;\n            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);\n            pcVar42 = pIVar9->scenes;\n            iVar13 = (int)pcVar42 * uVar14;\n            uVar75 = CONCAT44(iVar13,pFVar29);\n            if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n            uVar75 = CONCAT44(iVar13,pFVar29);\n          }\n        }\n        uVar55 = (undefined4)((ulonglong)uVar75 >> 0x20);\n        uVar27 = (undefined4)uVar75;\n        if (((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) &&\n           ((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar11 == 0) {\nLAB_002550a8:\n          uVar55 = 0x3db;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284;\n          local_30d8._0_4_ = (ExceptionInfo *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar11 == 0) goto LAB_002550a8;\n        pFVar45 = (FILE *)0x1;\n        pIVar40 = (ImageInfo *)cache_filename;\n        local_30d8._0_4_ = exception;\n        iVar11 = (*(code *)PTR_PersistPixelCache_003a8dc0)\n                           (pIVar9,(ImageInfo *)cache_filename,1,&offset);\n        if (iVar11 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception);\n          uVar55 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          pIVar10 = (ImageInfo *)exception;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_EOFBlob_003a9748)(pIVar9);\n        if (iVar11 != 0) {\n          puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20);\n          local_30cc = pIVar9->magick + 0x130;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n          local_30c8 = pIVar10;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000);\n          (*(code *)PTR_DestroyString_003a9074)(pIVar10);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\nLAB_002548a8:\n          pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);\n          image_info = pIVar10;\n          unaff_s8 = pFVar12;\n          uVar75 = CONCAT44(uVar55,uVar27);\n          goto LAB_002546dc;\n        }\n        uVar55 = 0xffffffff;\n        uVar75 = CONCAT44(0xffffffff,uVar27);\n        while( true ) {\n          unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n          unaff_s4 = (FILE *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (FILE *)0xffffffff;\n          unaff_s8 = pFVar12;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (FILE *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          pFVar12 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        pIVar40 = pIVar9;\n        pFVar45 = (FILE *)exception;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(image_info);\n        iVar11 = (*(code *)PTR_GetNextImageInList_003a9470)(pIVar9);\n        if (iVar11 == 0) break;\n        pIVar9 = (ImageInfo *)(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9);\n        uVar75 = (*(code *)PTR_TellBlob_003a931c)(pIVar9);\n        pFVar45 = (FILE *)((ulonglong)uVar75 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n        pIVar40 = (ImageInfo *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(pIVar9,pIVar40,pFVar45,(int)uVar75);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n      pFVar12 = unaff_s8;\nLAB_00253dbc:\n      pIVar15 = (Image *)(*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n      image_info = pIVar10;\n      unaff_s8 = pFVar12;\n    }\n  }" { (expression_statement "pFVar45 = (FILE *)0xffa;" (assignment_expression "pFVar45 = (FILE *)0xffa" identifier = (cast_expression "(FILE *)0xffa" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)((ImageInfo *)cache_filename,pIVar9->magick + 0x130);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)((ImageInfo *)cache_filename,pIVar9->magick + 0x130)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((ImageInfo *)cache_filename,pIVar9->magick + 0x130)" ( (cast_expression "(ImageInfo *)cache_filename" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "pIVar9->magick + 0x130" (field_expression "pIVar9->magick" identifier -> field_identifier) + number_literal) ))) ;) (expression_statement "pIVar40 = (ImageInfo *)cache_filename;" (assignment_expression "pIVar40 = (ImageInfo *)cache_filename" identifier = (cast_expression "(ImageInfo *)cache_filename" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);" (call_expression "(*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8)" (parenthesized_expression "(*(code *)PTR_AppendImageFormat_003a8fa8)" ( (pointer_expression "*(code *)PTR_AppendImageFormat_003a8fa8" * (cast_expression "(code *)PTR_AppendImageFormat_003a8fa8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x50b8)" ( (binary_expression "PTR_s_courses_003a88ec + -0x50b8" identifier + number_literal) ))) ;) (expression_statement "unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);" (assignment_expression "unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" identifier = (cast_expression "(FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;) (expression_statement "puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;) (expression_statement "puVar4 = PTR_LAB_003a88e0;" (assignment_expression "puVar4 = PTR_LAB_003a88e0" identifier = identifier) ;) (expression_statement "uVar75 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);" (assignment_expression "uVar75 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0)" identifier = (call_expression "CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0)" identifier (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0)" ( identifier , identifier )))) ;) (if_statement "if (unaff_s8 == (FILE *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(pIVar9);\n      pIVar15 = (Image *)0x0;\n      image_info = (ImageInfo *)cache_filename;\n      uVar75 = CONCAT44(exception,unaff_s3);\n    }\n    else {\n      unaff_s5 = (FILE *)keyword;\n      pFVar45 = (FILE *)0x1000;\n      id[0] = '\0';\n      unaff_s4 = (FILE *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      offset._4_4_ = 0;\n      offset._0_4_ = 0;\n      pIVar10 = (ImageInfo *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = (FILE *)&geometry_info;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)((FILE *)&geometry_info);\n        unaff_s6 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar11 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        CVar35 = pIVar10->compression;\n        pIVar9->page = &DAT_00000008;\n        pFVar29 = (FILE *)(unaff_s4->_shortbuf + (CVar35 - 0x47));\n        pIVar9->temporary = 0x10;\n        uVar2 = *(ushort *)&pFVar29->_flags;\n        pFVar12 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = pFVar29;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = pFVar29;\n            if (pFVar12 == (FILE *)&DAT_0000003a) break;\n            if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }\n            CVar35 = pIVar10->compression;\n            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = pFVar29;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n        iVar13 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = pFVar12;\n        if ((((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))) ||\n           ((char *)0x3f < pIVar9->page + -1)) {\n          uVar55 = 0x31d;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -400;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = image_info->filename;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n          pIVar15 = (Image *)0x0;\n          image_info = pIVar10;\n          goto LAB_002546dc;\n        }\n        iVar13 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar11 != iVar13) {\n          uVar55 = 0x323;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (pIVar9->file != (FILE *)0x0) {\n          unaff_s6 = (FILE *)0x0;\n          puVar32 = (undefined1 *)0x1000;\n          pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n          pIVar9->blob = pFVar29;\n          do {\n            *(undefined1 *)&pFVar29->_flags = 0;\n            pFVar19 = pFVar29;\n            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }\n            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n            if (iVar11 == -1) break;\n            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);\n            *(char *)&pFVar19->_flags = (char)iVar11;\n            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);\n            unaff_s4 = pFVar19;\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n          } while (iVar11 != 0);\n        }\n        pIVar40 = (ImageInfo *)0x0;\n        unaff_s4 = (FILE *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9);\n        if (pIVar9->compression == B44Compression) {\n          pcVar42 = pIVar9->scenes;\n          uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n          uVar14 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar43 = uVar14 * (int)pcVar42;\n          if ((int)((ulonglong)uVar75 >> 0x20) == 0) {\n            uVar43 = (uint)((uint)uVar75 < uVar43);\n            uVar75 = CONCAT44(uVar14,uVar43);\n            if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          pIVar40 = (ImageInfo *)0x58;\n          sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1);\n          pIVar9->scene = sVar17;\n          if (sVar17 == 0) {\n            uVar55 = 0x381;\nLAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n            local_30d8._0_4_ = (ExceptionInfo *)0x190;\n            unaff_s8 = pFVar12;\n            goto LAB_002546ac;\n          }\n          uVar75 = CONCAT44(uVar14,uVar43);\n          if (pIVar9->scenes != (char *)0x0) {\n            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);\n            if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }\n            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);\n            pFVar45 = pFVar29;\n            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);\n            pcVar42 = pIVar9->scenes;\n            iVar13 = (int)pcVar42 * uVar14;\n            uVar75 = CONCAT44(iVar13,pFVar29);\n            if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n            uVar75 = CONCAT44(iVar13,pFVar29);\n          }\n        }\n        uVar55 = (undefined4)((ulonglong)uVar75 >> 0x20);\n        uVar27 = (undefined4)uVar75;\n        if (((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) &&\n           ((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar11 == 0) {\nLAB_002550a8:\n          uVar55 = 0x3db;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284;\n          local_30d8._0_4_ = (ExceptionInfo *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar11 == 0) goto LAB_002550a8;\n        pFVar45 = (FILE *)0x1;\n        pIVar40 = (ImageInfo *)cache_filename;\n        local_30d8._0_4_ = exception;\n        iVar11 = (*(code *)PTR_PersistPixelCache_003a8dc0)\n                           (pIVar9,(ImageInfo *)cache_filename,1,&offset);\n        if (iVar11 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception);\n          uVar55 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          pIVar10 = (ImageInfo *)exception;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_EOFBlob_003a9748)(pIVar9);\n        if (iVar11 != 0) {\n          puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20);\n          local_30cc = pIVar9->magick + 0x130;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n          local_30c8 = pIVar10;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000);\n          (*(code *)PTR_DestroyString_003a9074)(pIVar10);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\nLAB_002548a8:\n          pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);\n          image_info = pIVar10;\n          unaff_s8 = pFVar12;\n          uVar75 = CONCAT44(uVar55,uVar27);\n          goto LAB_002546dc;\n        }\n        uVar55 = 0xffffffff;\n        uVar75 = CONCAT44(0xffffffff,uVar27);\n        while( true ) {\n          unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n          unaff_s4 = (FILE *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (FILE *)0xffffffff;\n          unaff_s8 = pFVar12;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (FILE *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          pFVar12 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        pIVar40 = pIVar9;\n        pFVar45 = (FILE *)exception;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(image_info);\n        iVar11 = (*(code *)PTR_GetNextImageInList_003a9470)(pIVar9);\n        if (iVar11 == 0) break;\n        pIVar9 = (ImageInfo *)(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9);\n        uVar75 = (*(code *)PTR_TellBlob_003a931c)(pIVar9);\n        pFVar45 = (FILE *)((ulonglong)uVar75 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n        pIVar40 = (ImageInfo *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(pIVar9,pIVar40,pFVar45,(int)uVar75);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n      pFVar12 = unaff_s8;\nLAB_00253dbc:\n      pIVar15 = (Image *)(*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n      image_info = pIVar10;\n      unaff_s8 = pFVar12;\n    }" if (parenthesized_expression "(unaff_s8 == (FILE *)0xffffffff)" ( (binary_expression "unaff_s8 == (FILE *)0xffffffff" identifier == (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_DestroyImage_003a8f4c)(pIVar9);\n      pIVar15 = (Image *)0x0;\n      image_info = (ImageInfo *)cache_filename;\n      uVar75 = CONCAT44(exception,unaff_s3);\n    }" { (expression_statement "(*(code *)PTR_DestroyImage_003a8f4c)(pIVar9);" (call_expression "(*(code *)PTR_DestroyImage_003a8f4c)(pIVar9)" (parenthesized_expression "(*(code *)PTR_DestroyImage_003a8f4c)" ( (pointer_expression "*(code *)PTR_DestroyImage_003a8f4c" * (cast_expression "(code *)PTR_DestroyImage_003a8f4c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))) ;) (expression_statement "pIVar15 = (Image *)0x0;" (assignment_expression "pIVar15 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "image_info = (ImageInfo *)cache_filename;" (assignment_expression "image_info = (ImageInfo *)cache_filename" identifier = (cast_expression "(ImageInfo *)cache_filename" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar75 = CONCAT44(exception,unaff_s3);" (assignment_expression "uVar75 = CONCAT44(exception,unaff_s3)" identifier = (call_expression "CONCAT44(exception,unaff_s3)" identifier (argument_list "(exception,unaff_s3)" ( identifier , identifier )))) ;) }) (else_clause "else {\n      unaff_s5 = (FILE *)keyword;\n      pFVar45 = (FILE *)0x1000;\n      id[0] = '\0';\n      unaff_s4 = (FILE *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      offset._4_4_ = 0;\n      offset._0_4_ = 0;\n      pIVar10 = (ImageInfo *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = (FILE *)&geometry_info;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)((FILE *)&geometry_info);\n        unaff_s6 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar11 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        CVar35 = pIVar10->compression;\n        pIVar9->page = &DAT_00000008;\n        pFVar29 = (FILE *)(unaff_s4->_shortbuf + (CVar35 - 0x47));\n        pIVar9->temporary = 0x10;\n        uVar2 = *(ushort *)&pFVar29->_flags;\n        pFVar12 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = pFVar29;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = pFVar29;\n            if (pFVar12 == (FILE *)&DAT_0000003a) break;\n            if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }\n            CVar35 = pIVar10->compression;\n            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = pFVar29;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n        iVar13 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = pFVar12;\n        if ((((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))) ||\n           ((char *)0x3f < pIVar9->page + -1)) {\n          uVar55 = 0x31d;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -400;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = image_info->filename;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n          pIVar15 = (Image *)0x0;\n          image_info = pIVar10;\n          goto LAB_002546dc;\n        }\n        iVar13 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar11 != iVar13) {\n          uVar55 = 0x323;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (pIVar9->file != (FILE *)0x0) {\n          unaff_s6 = (FILE *)0x0;\n          puVar32 = (undefined1 *)0x1000;\n          pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n          pIVar9->blob = pFVar29;\n          do {\n            *(undefined1 *)&pFVar29->_flags = 0;\n            pFVar19 = pFVar29;\n            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }\n            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n            if (iVar11 == -1) break;\n            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);\n            *(char *)&pFVar19->_flags = (char)iVar11;\n            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);\n            unaff_s4 = pFVar19;\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n          } while (iVar11 != 0);\n        }\n        pIVar40 = (ImageInfo *)0x0;\n        unaff_s4 = (FILE *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9);\n        if (pIVar9->compression == B44Compression) {\n          pcVar42 = pIVar9->scenes;\n          uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n          uVar14 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar43 = uVar14 * (int)pcVar42;\n          if ((int)((ulonglong)uVar75 >> 0x20) == 0) {\n            uVar43 = (uint)((uint)uVar75 < uVar43);\n            uVar75 = CONCAT44(uVar14,uVar43);\n            if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          pIVar40 = (ImageInfo *)0x58;\n          sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1);\n          pIVar9->scene = sVar17;\n          if (sVar17 == 0) {\n            uVar55 = 0x381;\nLAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n            local_30d8._0_4_ = (ExceptionInfo *)0x190;\n            unaff_s8 = pFVar12;\n            goto LAB_002546ac;\n          }\n          uVar75 = CONCAT44(uVar14,uVar43);\n          if (pIVar9->scenes != (char *)0x0) {\n            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);\n            if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }\n            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);\n            pFVar45 = pFVar29;\n            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);\n            pcVar42 = pIVar9->scenes;\n            iVar13 = (int)pcVar42 * uVar14;\n            uVar75 = CONCAT44(iVar13,pFVar29);\n            if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n            uVar75 = CONCAT44(iVar13,pFVar29);\n          }\n        }\n        uVar55 = (undefined4)((ulonglong)uVar75 >> 0x20);\n        uVar27 = (undefined4)uVar75;\n        if (((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) &&\n           ((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar11 == 0) {\nLAB_002550a8:\n          uVar55 = 0x3db;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284;\n          local_30d8._0_4_ = (ExceptionInfo *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar11 == 0) goto LAB_002550a8;\n        pFVar45 = (FILE *)0x1;\n        pIVar40 = (ImageInfo *)cache_filename;\n        local_30d8._0_4_ = exception;\n        iVar11 = (*(code *)PTR_PersistPixelCache_003a8dc0)\n                           (pIVar9,(ImageInfo *)cache_filename,1,&offset);\n        if (iVar11 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception);\n          uVar55 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          pIVar10 = (ImageInfo *)exception;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_EOFBlob_003a9748)(pIVar9);\n        if (iVar11 != 0) {\n          puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20);\n          local_30cc = pIVar9->magick + 0x130;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n          local_30c8 = pIVar10;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000);\n          (*(code *)PTR_DestroyString_003a9074)(pIVar10);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\nLAB_002548a8:\n          pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);\n          image_info = pIVar10;\n          unaff_s8 = pFVar12;\n          uVar75 = CONCAT44(uVar55,uVar27);\n          goto LAB_002546dc;\n        }\n        uVar55 = 0xffffffff;\n        uVar75 = CONCAT44(0xffffffff,uVar27);\n        while( true ) {\n          unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n          unaff_s4 = (FILE *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (FILE *)0xffffffff;\n          unaff_s8 = pFVar12;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (FILE *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          pFVar12 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        pIVar40 = pIVar9;\n        pFVar45 = (FILE *)exception;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(image_info);\n        iVar11 = (*(code *)PTR_GetNextImageInList_003a9470)(pIVar9);\n        if (iVar11 == 0) break;\n        pIVar9 = (ImageInfo *)(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9);\n        uVar75 = (*(code *)PTR_TellBlob_003a931c)(pIVar9);\n        pFVar45 = (FILE *)((ulonglong)uVar75 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n        pIVar40 = (ImageInfo *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(pIVar9,pIVar40,pFVar45,(int)uVar75);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n      pFVar12 = unaff_s8;\nLAB_00253dbc:\n      pIVar15 = (Image *)(*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n      image_info = pIVar10;\n      unaff_s8 = pFVar12;\n    }" else (compound_statement "{\n      unaff_s5 = (FILE *)keyword;\n      pFVar45 = (FILE *)0x1000;\n      id[0] = '\0';\n      unaff_s4 = (FILE *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      offset._4_4_ = 0;\n      offset._0_4_ = 0;\n      pIVar10 = (ImageInfo *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = (FILE *)&geometry_info;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)((FILE *)&geometry_info);\n        unaff_s6 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar11 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        CVar35 = pIVar10->compression;\n        pIVar9->page = &DAT_00000008;\n        pFVar29 = (FILE *)(unaff_s4->_shortbuf + (CVar35 - 0x47));\n        pIVar9->temporary = 0x10;\n        uVar2 = *(ushort *)&pFVar29->_flags;\n        pFVar12 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = pFVar29;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = pFVar29;\n            if (pFVar12 == (FILE *)&DAT_0000003a) break;\n            if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }\n            CVar35 = pIVar10->compression;\n            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = pFVar29;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n        iVar13 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = pFVar12;\n        if ((((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))) ||\n           ((char *)0x3f < pIVar9->page + -1)) {\n          uVar55 = 0x31d;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -400;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = image_info->filename;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n          pIVar15 = (Image *)0x0;\n          image_info = pIVar10;\n          goto LAB_002546dc;\n        }\n        iVar13 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar11 != iVar13) {\n          uVar55 = 0x323;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (pIVar9->file != (FILE *)0x0) {\n          unaff_s6 = (FILE *)0x0;\n          puVar32 = (undefined1 *)0x1000;\n          pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n          pIVar9->blob = pFVar29;\n          do {\n            *(undefined1 *)&pFVar29->_flags = 0;\n            pFVar19 = pFVar29;\n            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }\n            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n            if (iVar11 == -1) break;\n            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);\n            *(char *)&pFVar19->_flags = (char)iVar11;\n            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);\n            unaff_s4 = pFVar19;\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n          } while (iVar11 != 0);\n        }\n        pIVar40 = (ImageInfo *)0x0;\n        unaff_s4 = (FILE *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9);\n        if (pIVar9->compression == B44Compression) {\n          pcVar42 = pIVar9->scenes;\n          uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n          uVar14 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar43 = uVar14 * (int)pcVar42;\n          if ((int)((ulonglong)uVar75 >> 0x20) == 0) {\n            uVar43 = (uint)((uint)uVar75 < uVar43);\n            uVar75 = CONCAT44(uVar14,uVar43);\n            if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          pIVar40 = (ImageInfo *)0x58;\n          sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1);\n          pIVar9->scene = sVar17;\n          if (sVar17 == 0) {\n            uVar55 = 0x381;\nLAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n            local_30d8._0_4_ = (ExceptionInfo *)0x190;\n            unaff_s8 = pFVar12;\n            goto LAB_002546ac;\n          }\n          uVar75 = CONCAT44(uVar14,uVar43);\n          if (pIVar9->scenes != (char *)0x0) {\n            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);\n            if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }\n            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);\n            pFVar45 = pFVar29;\n            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);\n            pcVar42 = pIVar9->scenes;\n            iVar13 = (int)pcVar42 * uVar14;\n            uVar75 = CONCAT44(iVar13,pFVar29);\n            if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n            uVar75 = CONCAT44(iVar13,pFVar29);\n          }\n        }\n        uVar55 = (undefined4)((ulonglong)uVar75 >> 0x20);\n        uVar27 = (undefined4)uVar75;\n        if (((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) &&\n           ((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar11 == 0) {\nLAB_002550a8:\n          uVar55 = 0x3db;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284;\n          local_30d8._0_4_ = (ExceptionInfo *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar11 == 0) goto LAB_002550a8;\n        pFVar45 = (FILE *)0x1;\n        pIVar40 = (ImageInfo *)cache_filename;\n        local_30d8._0_4_ = exception;\n        iVar11 = (*(code *)PTR_PersistPixelCache_003a8dc0)\n                           (pIVar9,(ImageInfo *)cache_filename,1,&offset);\n        if (iVar11 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception);\n          uVar55 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          pIVar10 = (ImageInfo *)exception;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_EOFBlob_003a9748)(pIVar9);\n        if (iVar11 != 0) {\n          puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20);\n          local_30cc = pIVar9->magick + 0x130;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n          local_30c8 = pIVar10;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000);\n          (*(code *)PTR_DestroyString_003a9074)(pIVar10);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\nLAB_002548a8:\n          pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);\n          image_info = pIVar10;\n          unaff_s8 = pFVar12;\n          uVar75 = CONCAT44(uVar55,uVar27);\n          goto LAB_002546dc;\n        }\n        uVar55 = 0xffffffff;\n        uVar75 = CONCAT44(0xffffffff,uVar27);\n        while( true ) {\n          unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n          unaff_s4 = (FILE *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (FILE *)0xffffffff;\n          unaff_s8 = pFVar12;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (FILE *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          pFVar12 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        pIVar40 = pIVar9;\n        pFVar45 = (FILE *)exception;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(image_info);\n        iVar11 = (*(code *)PTR_GetNextImageInList_003a9470)(pIVar9);\n        if (iVar11 == 0) break;\n        pIVar9 = (ImageInfo *)(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9);\n        uVar75 = (*(code *)PTR_TellBlob_003a931c)(pIVar9);\n        pFVar45 = (FILE *)((ulonglong)uVar75 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n        pIVar40 = (ImageInfo *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(pIVar9,pIVar40,pFVar45,(int)uVar75);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n      pFVar12 = unaff_s8;\nLAB_00253dbc:\n      pIVar15 = (Image *)(*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n      image_info = pIVar10;\n      unaff_s8 = pFVar12;\n    }" { (expression_statement "unaff_s5 = (FILE *)keyword;" (assignment_expression "unaff_s5 = (FILE *)keyword" identifier = (cast_expression "(FILE *)keyword" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pFVar45 = (FILE *)0x1000;" (assignment_expression "pFVar45 = (FILE *)0x1000" identifier = (cast_expression "(FILE *)0x1000" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "id[0] = '\0';" (assignment_expression "id[0] = '\0'" (subscript_expression "id[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "unaff_s4 = (FILE *)((int)unaff_s8 << 1);" (assignment_expression "unaff_s4 = (FILE *)((int)unaff_s8 << 1)" identifier = (cast_expression "(FILE *)((int)unaff_s8 << 1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s8 << 1)" ( (binary_expression "(int)unaff_s8 << 1" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "(*(code *)PTR_memset_003a96d4)(unaff_s5,0);" (call_expression "(*(code *)PTR_memset_003a96d4)(unaff_s5,0)" (parenthesized_expression "(*(code *)PTR_memset_003a96d4)" ( (pointer_expression "*(code *)PTR_memset_003a96d4" * (cast_expression "(code *)PTR_memset_003a96d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5,0)" ( identifier , number_literal ))) ;) (expression_statement "offset._4_4_ = 0;" (assignment_expression "offset._4_4_ = 0" (field_expression "offset._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "offset._0_4_ = 0;" (assignment_expression "offset._0_4_ = 0" (field_expression "offset._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "pIVar10 = (ImageInfo *)(*(code *)PTR___ctype_b_loc_003a9434)();" (assignment_expression "pIVar10 = (ImageInfo *)(*(code *)PTR___ctype_b_loc_003a9434)()" identifier = (cast_expression "(ImageInfo *)(*(code *)PTR___ctype_b_loc_003a9434)()" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_003a9434)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_003a9434)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_003a9434" * (cast_expression "(code *)PTR___ctype_b_loc_003a9434" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "in_f24_25 = *(double *)(puVar5 + -0x5b00);" (assignment_expression "in_f24_25 = *(double *)(puVar5 + -0x5b00)" identifier = (pointer_expression "*(double *)(puVar5 + -0x5b00)" * (cast_expression "(double *)(puVar5 + -0x5b00)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x5b00)" ( (binary_expression "puVar5 + -0x5b00" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(puVar4 + 0x1418);" (assignment_expression "in_f22_23 = *(double *)(puVar4 + 0x1418)" identifier = (pointer_expression "*(double *)(puVar4 + 0x1418)" * (cast_expression "(double *)(puVar4 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x1418)" ( (binary_expression "puVar4 + 0x1418" identifier + number_literal) ))))) ;) (expression_statement "in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);" (assignment_expression "in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "unaff_s7 = (FILE *)&geometry_info;" (assignment_expression "unaff_s7 = (FILE *)&geometry_info" identifier = (cast_expression "(FILE *)&geometry_info" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&geometry_info" & identifier))) ;) (do_statement "do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)((FILE *)&geometry_info);\n        unaff_s6 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar11 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        CVar35 = pIVar10->compression;\n        pIVar9->page = &DAT_00000008;\n        pFVar29 = (FILE *)(unaff_s4->_shortbuf + (CVar35 - 0x47));\n        pIVar9->temporary = 0x10;\n        uVar2 = *(ushort *)&pFVar29->_flags;\n        pFVar12 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = pFVar29;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = pFVar29;\n            if (pFVar12 == (FILE *)&DAT_0000003a) break;\n            if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }\n            CVar35 = pIVar10->compression;\n            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = pFVar29;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n        iVar13 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = pFVar12;\n        if ((((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))) ||\n           ((char *)0x3f < pIVar9->page + -1)) {\n          uVar55 = 0x31d;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -400;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = image_info->filename;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n          pIVar15 = (Image *)0x0;\n          image_info = pIVar10;\n          goto LAB_002546dc;\n        }\n        iVar13 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar11 != iVar13) {\n          uVar55 = 0x323;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (pIVar9->file != (FILE *)0x0) {\n          unaff_s6 = (FILE *)0x0;\n          puVar32 = (undefined1 *)0x1000;\n          pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n          pIVar9->blob = pFVar29;\n          do {\n            *(undefined1 *)&pFVar29->_flags = 0;\n            pFVar19 = pFVar29;\n            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }\n            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n            if (iVar11 == -1) break;\n            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);\n            *(char *)&pFVar19->_flags = (char)iVar11;\n            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);\n            unaff_s4 = pFVar19;\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n          } while (iVar11 != 0);\n        }\n        pIVar40 = (ImageInfo *)0x0;\n        unaff_s4 = (FILE *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9);\n        if (pIVar9->compression == B44Compression) {\n          pcVar42 = pIVar9->scenes;\n          uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n          uVar14 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar43 = uVar14 * (int)pcVar42;\n          if ((int)((ulonglong)uVar75 >> 0x20) == 0) {\n            uVar43 = (uint)((uint)uVar75 < uVar43);\n            uVar75 = CONCAT44(uVar14,uVar43);\n            if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          pIVar40 = (ImageInfo *)0x58;\n          sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1);\n          pIVar9->scene = sVar17;\n          if (sVar17 == 0) {\n            uVar55 = 0x381;\nLAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n            local_30d8._0_4_ = (ExceptionInfo *)0x190;\n            unaff_s8 = pFVar12;\n            goto LAB_002546ac;\n          }\n          uVar75 = CONCAT44(uVar14,uVar43);\n          if (pIVar9->scenes != (char *)0x0) {\n            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);\n            if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }\n            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);\n            pFVar45 = pFVar29;\n            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);\n            pcVar42 = pIVar9->scenes;\n            iVar13 = (int)pcVar42 * uVar14;\n            uVar75 = CONCAT44(iVar13,pFVar29);\n            if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n            uVar75 = CONCAT44(iVar13,pFVar29);\n          }\n        }\n        uVar55 = (undefined4)((ulonglong)uVar75 >> 0x20);\n        uVar27 = (undefined4)uVar75;\n        if (((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) &&\n           ((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar11 == 0) {\nLAB_002550a8:\n          uVar55 = 0x3db;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284;\n          local_30d8._0_4_ = (ExceptionInfo *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar11 == 0) goto LAB_002550a8;\n        pFVar45 = (FILE *)0x1;\n        pIVar40 = (ImageInfo *)cache_filename;\n        local_30d8._0_4_ = exception;\n        iVar11 = (*(code *)PTR_PersistPixelCache_003a8dc0)\n                           (pIVar9,(ImageInfo *)cache_filename,1,&offset);\n        if (iVar11 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception);\n          uVar55 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          pIVar10 = (ImageInfo *)exception;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_EOFBlob_003a9748)(pIVar9);\n        if (iVar11 != 0) {\n          puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20);\n          local_30cc = pIVar9->magick + 0x130;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n          local_30c8 = pIVar10;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000);\n          (*(code *)PTR_DestroyString_003a9074)(pIVar10);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\nLAB_002548a8:\n          pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);\n          image_info = pIVar10;\n          unaff_s8 = pFVar12;\n          uVar75 = CONCAT44(uVar55,uVar27);\n          goto LAB_002546dc;\n        }\n        uVar55 = 0xffffffff;\n        uVar75 = CONCAT44(0xffffffff,uVar27);\n        while( true ) {\n          unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n          unaff_s4 = (FILE *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (FILE *)0xffffffff;\n          unaff_s8 = pFVar12;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (FILE *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          pFVar12 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        pIVar40 = pIVar9;\n        pFVar45 = (FILE *)exception;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(image_info);\n        iVar11 = (*(code *)PTR_GetNextImageInList_003a9470)(pIVar9);\n        if (iVar11 == 0) break;\n        pIVar9 = (ImageInfo *)(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9);\n        uVar75 = (*(code *)PTR_TellBlob_003a931c)(pIVar9);\n        pFVar45 = (FILE *)((ulonglong)uVar75 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n        pIVar40 = (ImageInfo *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(pIVar9,pIVar40,pFVar45,(int)uVar75);\n      } while (local_309c != 0);" do (compound_statement "{\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)((FILE *)&geometry_info);\n        unaff_s6 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar11 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        CVar35 = pIVar10->compression;\n        pIVar9->page = &DAT_00000008;\n        pFVar29 = (FILE *)(unaff_s4->_shortbuf + (CVar35 - 0x47));\n        pIVar9->temporary = 0x10;\n        uVar2 = *(ushort *)&pFVar29->_flags;\n        pFVar12 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = pFVar29;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = pFVar29;\n            if (pFVar12 == (FILE *)&DAT_0000003a) break;\n            if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }\n            CVar35 = pIVar10->compression;\n            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = pFVar29;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n        iVar13 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = pFVar12;\n        if ((((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))) ||\n           ((char *)0x3f < pIVar9->page + -1)) {\n          uVar55 = 0x31d;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -400;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = image_info->filename;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n          pIVar15 = (Image *)0x0;\n          image_info = pIVar10;\n          goto LAB_002546dc;\n        }\n        iVar13 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar11 != iVar13) {\n          uVar55 = 0x323;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (pIVar9->file != (FILE *)0x0) {\n          unaff_s6 = (FILE *)0x0;\n          puVar32 = (undefined1 *)0x1000;\n          pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n          pIVar9->blob = pFVar29;\n          do {\n            *(undefined1 *)&pFVar29->_flags = 0;\n            pFVar19 = pFVar29;\n            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }\n            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n            if (iVar11 == -1) break;\n            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);\n            *(char *)&pFVar19->_flags = (char)iVar11;\n            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);\n            unaff_s4 = pFVar19;\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n          } while (iVar11 != 0);\n        }\n        pIVar40 = (ImageInfo *)0x0;\n        unaff_s4 = (FILE *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9);\n        if (pIVar9->compression == B44Compression) {\n          pcVar42 = pIVar9->scenes;\n          uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n          uVar14 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar43 = uVar14 * (int)pcVar42;\n          if ((int)((ulonglong)uVar75 >> 0x20) == 0) {\n            uVar43 = (uint)((uint)uVar75 < uVar43);\n            uVar75 = CONCAT44(uVar14,uVar43);\n            if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          pIVar40 = (ImageInfo *)0x58;\n          sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1);\n          pIVar9->scene = sVar17;\n          if (sVar17 == 0) {\n            uVar55 = 0x381;\nLAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n            local_30d8._0_4_ = (ExceptionInfo *)0x190;\n            unaff_s8 = pFVar12;\n            goto LAB_002546ac;\n          }\n          uVar75 = CONCAT44(uVar14,uVar43);\n          if (pIVar9->scenes != (char *)0x0) {\n            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);\n            if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }\n            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);\n            pFVar45 = pFVar29;\n            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);\n            pcVar42 = pIVar9->scenes;\n            iVar13 = (int)pcVar42 * uVar14;\n            uVar75 = CONCAT44(iVar13,pFVar29);\n            if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n            uVar75 = CONCAT44(iVar13,pFVar29);\n          }\n        }\n        uVar55 = (undefined4)((ulonglong)uVar75 >> 0x20);\n        uVar27 = (undefined4)uVar75;\n        if (((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) &&\n           ((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar11 == 0) {\nLAB_002550a8:\n          uVar55 = 0x3db;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284;\n          local_30d8._0_4_ = (ExceptionInfo *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar11 == 0) goto LAB_002550a8;\n        pFVar45 = (FILE *)0x1;\n        pIVar40 = (ImageInfo *)cache_filename;\n        local_30d8._0_4_ = exception;\n        iVar11 = (*(code *)PTR_PersistPixelCache_003a8dc0)\n                           (pIVar9,(ImageInfo *)cache_filename,1,&offset);\n        if (iVar11 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception);\n          uVar55 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          pIVar10 = (ImageInfo *)exception;\n          goto LAB_002546ac;\n        }\n        iVar11 = (*(code *)PTR_EOFBlob_003a9748)(pIVar9);\n        if (iVar11 != 0) {\n          puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20);\n          local_30cc = pIVar9->magick + 0x130;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n          local_30c8 = pIVar10;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000);\n          (*(code *)PTR_DestroyString_003a9074)(pIVar10);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\nLAB_002548a8:\n          pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);\n          image_info = pIVar10;\n          unaff_s8 = pFVar12;\n          uVar75 = CONCAT44(uVar55,uVar27);\n          goto LAB_002546dc;\n        }\n        uVar55 = 0xffffffff;\n        uVar75 = CONCAT44(0xffffffff,uVar27);\n        while( true ) {\n          unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n          unaff_s4 = (FILE *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (FILE *)0xffffffff;\n          unaff_s8 = pFVar12;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (FILE *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          pFVar12 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        pIVar40 = pIVar9;\n        pFVar45 = (FILE *)exception;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(image_info);\n        iVar11 = (*(code *)PTR_GetNextImageInList_003a9470)(pIVar9);\n        if (iVar11 == 0) break;\n        pIVar9 = (ImageInfo *)(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9);\n        uVar75 = (*(code *)PTR_TellBlob_003a931c)(pIVar9);\n        pFVar45 = (FILE *)((ulonglong)uVar75 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n        pIVar40 = (ImageInfo *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(pIVar9,pIVar40,pFVar45,(int)uVar75);\n      }" { (expression_statement "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;" (assignment_expression "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c" identifier = identifier) ;) (expression_statement "(*(code *)PTR_SetGeometryInfo_003a9970)((FILE *)&geometry_info);" (call_expression "(*(code *)PTR_SetGeometryInfo_003a9970)((FILE *)&geometry_info)" (parenthesized_expression "(*(code *)PTR_SetGeometryInfo_003a9970)" ( (pointer_expression "*(code *)PTR_SetGeometryInfo_003a9970" * (cast_expression "(code *)PTR_SetGeometryInfo_003a9970" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((FILE *)&geometry_info)" ( (cast_expression "(FILE *)&geometry_info" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&geometry_info" & identifier)) ))) ;) (expression_statement "unaff_s6 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);" (assignment_expression "unaff_s6 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0)" identifier = (cast_expression "(FILE *)(*(code *)PTR_AcquireString_003a9814)(0)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireString_003a9814)(0)" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" ( (pointer_expression "*(code *)PTR_AcquireString_003a9814" * (cast_expression "(code *)PTR_AcquireString_003a9814" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "iVar11 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);" (assignment_expression "iVar11 = (*(code *)PTR_GetMagickSignature_003a96ec)(0)" identifier = (call_expression "(*(code *)PTR_GetMagickSignature_003a96ec)(0)" (parenthesized_expression "(*(code *)PTR_GetMagickSignature_003a96ec)" ( (pointer_expression "*(code *)PTR_GetMagickSignature_003a96ec" * (cast_expression "(code *)PTR_GetMagickSignature_003a96ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "CVar35 = pIVar10->compression;" (assignment_expression "CVar35 = pIVar10->compression" identifier = (field_expression "pIVar10->compression" identifier -> field_identifier)) ;) (expression_statement "pIVar9->page = &DAT_00000008;" (assignment_expression "pIVar9->page = &DAT_00000008" (field_expression "pIVar9->page" identifier -> field_identifier) = (pointer_expression "&DAT_00000008" & identifier)) ;) (expression_statement "pFVar29 = (FILE *)(unaff_s4->_shortbuf + (CVar35 - 0x47));" (assignment_expression "pFVar29 = (FILE *)(unaff_s4->_shortbuf + (CVar35 - 0x47))" identifier = (cast_expression "(FILE *)(unaff_s4->_shortbuf + (CVar35 - 0x47))" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4->_shortbuf + (CVar35 - 0x47))" ( (binary_expression "unaff_s4->_shortbuf + (CVar35 - 0x47)" (field_expression "unaff_s4->_shortbuf" identifier -> field_identifier) + (parenthesized_expression "(CVar35 - 0x47)" ( (binary_expression "CVar35 - 0x47" identifier - number_literal) ))) )))) ;) (expression_statement "pIVar9->temporary = 0x10;" (assignment_expression "pIVar9->temporary = 0x10" (field_expression "pIVar9->temporary" identifier -> field_identifier) = number_literal) ;) (expression_statement "uVar2 = *(ushort *)&pFVar29->_flags;" (assignment_expression "uVar2 = *(ushort *)&pFVar29->_flags" identifier = (pointer_expression "*(ushort *)&pFVar29->_flags" * (cast_expression "(ushort *)&pFVar29->_flags" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar29->_flags" & (field_expression "pFVar29->_flags" identifier -> field_identifier))))) ;) (expression_statement "pFVar12 = unaff_s8;" (assignment_expression "pFVar12 = unaff_s8" identifier = identifier) ;) (labeled_statement "LAB_0025399c:\n        unaff_s4 = pFVar29;" statement_identifier : (expression_statement "unaff_s4 = pFVar29;" (assignment_expression "unaff_s4 = pFVar29" identifier = identifier) ;)) (if_statement "if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = pFVar29;\n            if (pFVar12 == (FILE *)&DAT_0000003a) break;\n            if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }\n            CVar35 = pIVar10->compression;\n            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = pFVar29;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }" if (parenthesized_expression "((uVar2 & 0x80) != 0)" ( (binary_expression "(uVar2 & 0x80) != 0" (parenthesized_expression "(uVar2 & 0x80)" ( (binary_expression "uVar2 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          do {\n            unaff_s4 = pFVar29;\n            if (pFVar12 == (FILE *)&DAT_0000003a) break;\n            if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }\n            CVar35 = pIVar10->compression;\n            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = pFVar29;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }" { (do_statement "do {\n            unaff_s4 = pFVar29;\n            if (pFVar12 == (FILE *)&DAT_0000003a) break;\n            if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }\n            CVar35 = pIVar10->compression;\n            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = pFVar29;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );" do (compound_statement "{\n            unaff_s4 = pFVar29;\n            if (pFVar12 == (FILE *)&DAT_0000003a) break;\n            if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }\n            CVar35 = pIVar10->compression;\n            uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = pFVar29;\n            if ((uVar2 & 0x80) == 0) break;\n          }" { (expression_statement "unaff_s4 = pFVar29;" (assignment_expression "unaff_s4 = pFVar29" identifier = identifier) ;) (if_statement "if (pFVar12 == (FILE *)&DAT_0000003a) break;" if (parenthesized_expression "(pFVar12 == (FILE *)&DAT_0000003a)" ( (binary_expression "pFVar12 == (FILE *)&DAT_0000003a" identifier == (cast_expression "(FILE *)&DAT_0000003a" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000003a" & identifier))) )) (break_statement "break;" break ;)) (if_statement "if (pFVar12 == (FILE *)0x7b) {\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }" if (parenthesized_expression "(pFVar12 == (FILE *)0x7b)" ( (binary_expression "pFVar12 == (FILE *)0x7b" identifier == (cast_expression "(FILE *)0x7b" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = pFVar12;\n              if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar14 = 0x1000;\n              pFVar29 = (FILE *)0x5c;\nLAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);\n              unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }\n              puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(undefined1 *)&unaff_s8->_flags = 0;\n              pFVar45 = pFVar12;\n              (*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);\n              (*(code *)PTR_DestroyString_003a9074)(pFVar12);\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }" { (expression_statement "pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);" (assignment_expression "pFVar12 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0)" identifier = (cast_expression "(FILE *)(*(code *)PTR_AcquireString_003a9814)(0)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireString_003a9814)(0)" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" ( (pointer_expression "*(code *)PTR_AcquireString_003a9814" * (cast_expression "(code *)PTR_AcquireString_003a9814" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "unaff_s8 = pFVar12;" (assignment_expression "unaff_s8 = pFVar12" identifier = identifier) ;) (if_statement "if (pFVar12 == (FILE *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }" if (parenthesized_expression "(pFVar12 == (FILE *)0x0)" ( (binary_expression "pFVar12 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar55 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n                local_30d8._0_4_ = (ExceptionInfo *)0x190;\n                goto LAB_002546ac;\n              }" { (labeled_statement "LAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);" statement_identifier : (expression_statement "(*(code *)PTR_DestroyString_003a9074)(unaff_s6);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" ( (pointer_expression "*(code *)PTR_DestroyString_003a9074" * (cast_expression "(code *)PTR_DestroyString_003a9074" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier ))) ;)) (expression_statement "uVar55 = 0x10e;" (assignment_expression "uVar55 = 0x10e" identifier = number_literal) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;" (assignment_expression "local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (binary_expression "PTR_LAB_003a88e0 + 0x16f8" identifier + number_literal)) ;) (expression_statement "local_30d8._0_4_ = (ExceptionInfo *)0x190;" (assignment_expression "local_30d8._0_4_ = (ExceptionInfo *)0x190" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ExceptionInfo *)0x190" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "uVar14 = 0x1000;" (assignment_expression "uVar14 = 0x1000" identifier = number_literal) ;) (expression_statement "pFVar29 = (FILE *)0x5c;" (assignment_expression "pFVar29 = (FILE *)0x5c" identifier = (cast_expression "(FILE *)0x5c" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0025451c:\n              uVar75 = CONCAT44(pFVar12,uVar14);" statement_identifier : (expression_statement "uVar75 = CONCAT44(pFVar12,uVar14);" (assignment_expression "uVar75 = CONCAT44(pFVar12,uVar14)" identifier = (call_expression "CONCAT44(pFVar12,uVar14)" identifier (argument_list "(pFVar12,uVar14)" ( identifier , identifier )))) ;)) (expression_statement "unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);" (assignment_expression "unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" identifier = (cast_expression "(FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;) (if_statement "if (unaff_s7 == (FILE *)0x5c) goto LAB_00254578;" if (parenthesized_expression "(unaff_s7 == (FILE *)0x5c)" ( (binary_expression "unaff_s7 == (FILE *)0x5c" identifier == (cast_expression "(FILE *)0x5c" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00254578;" goto statement_identifier ;)) (while_statement "while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))) {\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }" while (parenthesized_expression "((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d)))" ( (parenthesized_expression "(puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d))" ( (comma_expression "puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d)" (assignment_expression "puVar7 = PTR_SetImageProperty_003a9534" identifier = identifier) , (binary_expression "unaff_s7 != (FILE *)0xffffffff &&\n                     (iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d)" (binary_expression "unaff_s7 != (FILE *)0xffffffff" identifier != (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d)" ( (comma_expression "iVar13 = (int)unaff_s8 - (int)pFVar12, unaff_s7 != (FILE *)0x7d" (assignment_expression "iVar13 = (int)unaff_s8 - (int)pFVar12" identifier = (binary_expression "(int)unaff_s8 - (int)pFVar12" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pFVar12" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "unaff_s7 != (FILE *)0x7d" identifier != (cast_expression "(FILE *)0x7d" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) )) (compound_statement "{\n                while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }\n              }" { (while_statement "while( true ) {\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  puVar41 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(char *)&unaff_s8->_flags = (char)unaff_s7;\n                  unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);\n                  unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);\n                  if (unaff_s7 != (FILE *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  iVar13 = (int)unaff_s8 - (int)pFVar12;\n                }" { (expression_statement "puVar41 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar41 = PTR_ReadBlobByte_003a97f0" identifier = identifier) ;) (expression_statement "puVar7 = PTR_ResizeQuantumMemory_003a9420;" (assignment_expression "puVar7 = PTR_ResizeQuantumMemory_003a9420" identifier = identifier) ;) (if_statement "if (uVar14 <= iVar13 + 1U) {\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }" if (parenthesized_expression "(uVar14 <= iVar13 + 1U)" ( (binary_expression "uVar14 <= iVar13 + 1U" identifier <= (binary_expression "iVar13 + 1U" identifier + number_literal)) )) (compound_statement "{\n                    uVar14 = uVar14 * 2;\n                    *(undefined1 *)&unaff_s8->_flags = 0;\n                    pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);\n                    uVar75 = CONCAT44(pFVar12,uVar14);\n                    unaff_s4 = pFVar29;\n                    if (pFVar12 == (FILE *)0x0) goto LAB_00254658;\n                    iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);\n                    unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);\n                    pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;\n                    goto LAB_0025451c;\n                  }" { (expression_statement "uVar14 = uVar14 * 2;" (assignment_expression "uVar14 = uVar14 * 2" identifier = (binary_expression "uVar14 * 2" identifier * number_literal)) ;) (expression_statement "*(undefined1 *)&unaff_s8->_flags = 0;" (assignment_expression "*(undefined1 *)&unaff_s8->_flags = 0" (pointer_expression "*(undefined1 *)&unaff_s8->_flags" * (cast_expression "(undefined1 *)&unaff_s8->_flags" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s8->_flags" & (field_expression "unaff_s8->_flags" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1);" (assignment_expression "pFVar12 = (FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1)" identifier = (cast_expression "(FILE *)(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar7)(pFVar12,uVar14 + 0x1000,1)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar12,uVar14 + 0x1000,1)" ( identifier , (binary_expression "uVar14 + 0x1000" identifier + number_literal) , number_literal ))))) ;) (expression_statement "uVar75 = CONCAT44(pFVar12,uVar14);" (assignment_expression "uVar75 = CONCAT44(pFVar12,uVar14)" identifier = (call_expression "CONCAT44(pFVar12,uVar14)" identifier (argument_list "(pFVar12,uVar14)" ( identifier , identifier )))) ;) (expression_statement "unaff_s4 = pFVar29;" (assignment_expression "unaff_s4 = pFVar29" identifier = identifier) ;) (if_statement "if (pFVar12 == (FILE *)0x0) goto LAB_00254658;" if (parenthesized_expression "(pFVar12 == (FILE *)0x0)" ( (binary_expression "pFVar12 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00254658;" goto statement_identifier ;)) (expression_statement "iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12);" (assignment_expression "iVar13 = (*(code *)PTR_strlen_003a9338)(pFVar12)" identifier = (call_expression "(*(code *)PTR_strlen_003a9338)(pFVar12)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" ( (pointer_expression "*(code *)PTR_strlen_003a9338" * (cast_expression "(code *)PTR_strlen_003a9338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar12)" ( identifier )))) ;) (expression_statement "unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1);" (assignment_expression "unaff_s8 = (FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1)" identifier = (cast_expression "(FILE *)(pFVar12->_shortbuf + iVar13 + -0x47 + 1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pFVar12->_shortbuf + iVar13 + -0x47 + 1)" ( (binary_expression "pFVar12->_shortbuf + iVar13 + -0x47 + 1" (binary_expression "pFVar12->_shortbuf + iVar13 + -0x47" (binary_expression "pFVar12->_shortbuf + iVar13" (field_expression "pFVar12->_shortbuf" identifier -> field_identifier) + identifier) + number_literal) + number_literal) )))) ;) (expression_statement "pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7;" (assignment_expression "pFVar12->_shortbuf[iVar13 + -0x47] = (char)unaff_s7" (subscript_expression "pFVar12->_shortbuf[iVar13 + -0x47]" (field_expression "pFVar12->_shortbuf" identifier -> field_identifier) [ (binary_expression "iVar13 + -0x47" identifier + number_literal) ]) = (cast_expression "(char)unaff_s7" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0025451c;" goto statement_identifier ;) })) (expression_statement "*(char *)&unaff_s8->_flags = (char)unaff_s7;" (assignment_expression "*(char *)&unaff_s8->_flags = (char)unaff_s7" (pointer_expression "*(char *)&unaff_s8->_flags" * (cast_expression "(char *)&unaff_s8->_flags" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s8->_flags" & (field_expression "unaff_s8->_flags" identifier -> field_identifier)))) = (cast_expression "(char)unaff_s7" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1);" (assignment_expression "unaff_s8 = (FILE *)((int)&unaff_s8->_flags + 1)" identifier = (cast_expression "(FILE *)((int)&unaff_s8->_flags + 1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s8->_flags + 1)" ( (binary_expression "(int)&unaff_s8->_flags + 1" (cast_expression "(int)&unaff_s8->_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s8->_flags" & (field_expression "unaff_s8->_flags" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9);" (assignment_expression "unaff_s7 = (FILE *)(*(code *)puVar41)(pIVar9)" identifier = (cast_expression "(FILE *)(*(code *)puVar41)(pIVar9)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar41)(pIVar9)" (parenthesized_expression "(*(code *)puVar41)" ( (pointer_expression "*(code *)puVar41" * (cast_expression "(code *)puVar41" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;) (if_statement "if (unaff_s7 != (FILE *)0x5c) break;" if (parenthesized_expression "(unaff_s7 != (FILE *)0x5c)" ( (binary_expression "unaff_s7 != (FILE *)0x5c" identifier != (cast_expression "(FILE *)0x5c" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00254578:\n                  unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);" statement_identifier : (expression_statement "unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);" (assignment_expression "unaff_s7 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" identifier = (cast_expression "(FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;)) (expression_statement "iVar13 = (int)unaff_s8 - (int)pFVar12;" (assignment_expression "iVar13 = (int)unaff_s8 - (int)pFVar12" identifier = (binary_expression "(int)unaff_s8 - (int)pFVar12" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pFVar12" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) })) (expression_statement "puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;" (assignment_expression "puVar41 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928" identifier = (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)&unaff_s8->_flags = 0;" (assignment_expression "*(undefined1 *)&unaff_s8->_flags = 0" (pointer_expression "*(undefined1 *)&unaff_s8->_flags" * (cast_expression "(undefined1 *)&unaff_s8->_flags" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s8->_flags" & (field_expression "unaff_s8->_flags" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "pFVar45 = pFVar12;" (assignment_expression "pFVar45 = pFVar12" identifier = identifier) ;) (expression_statement "(*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception);" (call_expression "(*(code *)puVar7)(pIVar9,puVar41,pFVar12,exception)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9,puVar41,pFVar12,exception)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(pFVar12);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(pFVar12)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" ( (pointer_expression "*(code *)PTR_DestroyString_003a9074" * (cast_expression "(code *)PTR_DestroyString_003a9074" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar12)" ( identifier ))) ;) (expression_statement "pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);" (assignment_expression "pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" identifier = (cast_expression "(FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;) }) (else_clause "else if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }" else (if_statement "if ((uVar2 & 0x800) == 0) {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }\n            else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }" if (parenthesized_expression "((uVar2 & 0x800) == 0)" ( (binary_expression "(uVar2 & 0x800) == 0" (parenthesized_expression "(uVar2 & 0x800)" ( (binary_expression "uVar2 & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            }" { (expression_statement "pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);" (assignment_expression "pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" identifier = (cast_expression "(FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;) }) (else_clause "else {\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }" else (compound_statement "{\n              pFVar29 = unaff_s5;\n              if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }\nLAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);\n              uVar43 = (uint)uVar75;\n              *(char *)&pFVar29->_flags = '\0';\n              uVar2 = *(ushort *)(CVar35 + iVar13);\n              while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;\n              if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }\n              uVar14 = (byte)keyword[0] - 0x41 & 0xff;\n              if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }\n              pFVar45 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);\n            }" { (expression_statement "pFVar29 = unaff_s5;" (assignment_expression "pFVar29 = unaff_s5" identifier = identifier) ;) (if_statement "if (pFVar12 == (FILE *)0x3d) {\n                iVar13 = 0x7a;\n              }\n              else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }" if (parenthesized_expression "(pFVar12 == (FILE *)0x3d)" ( (binary_expression "pFVar12 == (FILE *)0x3d" identifier == (cast_expression "(FILE *)0x3d" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar13 = 0x7a;\n              }" { (expression_statement "iVar13 = 0x7a;" (assignment_expression "iVar13 = 0x7a" identifier = number_literal) ;) }) (else_clause "else {\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }" else (compound_statement "{\n                uVar75 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);\n                CVar35 = pIVar10->compression;\n                iVar13 = 0x7a;\n              }" { (expression_statement "uVar75 = 0xffffffff0000003d;" (assignment_expression "uVar75 = 0xffffffff0000003d" identifier = number_literal) ;) (do_statement "do {\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (pFVar12 != (FILE *)0x3d);" do (compound_statement "{\n                  if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }\n                  pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                  if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                }" { (if_statement "if ((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff) {\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }" if (parenthesized_expression "((uint)((int)pFVar29 - (int)unaff_s5) < 0xfff)" ( (binary_expression "(uint)((int)pFVar29 - (int)unaff_s5) < 0xfff" (call_expression "(uint)((int)pFVar29 - (int)unaff_s5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pFVar29 - (int)unaff_s5)" ( (binary_expression "(int)pFVar29 - (int)unaff_s5" (cast_expression "(int)pFVar29" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < number_literal) )) (compound_statement "{\n                    *(char *)&pFVar29->_flags = (char)pFVar12;\n                    pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);\n                  }" { (expression_statement "*(char *)&pFVar29->_flags = (char)pFVar12;" (assignment_expression "*(char *)&pFVar29->_flags = (char)pFVar12" (pointer_expression "*(char *)&pFVar29->_flags" * (cast_expression "(char *)&pFVar29->_flags" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar29->_flags" & (field_expression "pFVar29->_flags" identifier -> field_identifier)))) = (cast_expression "(char)pFVar12" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pFVar29 = (FILE *)((int)&pFVar29->_flags + 1);" (assignment_expression "pFVar29 = (FILE *)((int)&pFVar29->_flags + 1)" identifier = (cast_expression "(FILE *)((int)&pFVar29->_flags + 1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFVar29->_flags + 1)" ( (binary_expression "(int)&pFVar29->_flags + 1" (cast_expression "(int)&pFVar29->_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFVar29->_flags" & (field_expression "pFVar29->_flags" identifier -> field_identifier))) + number_literal) )))) ;) })) (expression_statement "pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);" (assignment_expression "pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" identifier = (cast_expression "(FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;) (if_statement "if (pFVar12 == (FILE *)0xffffffff) {\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }" if (parenthesized_expression "(pFVar12 == (FILE *)0xffffffff)" ( (binary_expression "pFVar12 == (FILE *)0xffffffff" identifier == (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    CVar35 = pIVar10->compression;\n                    iVar13 = -2;\n                    uVar75 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }" { (expression_statement "CVar35 = pIVar10->compression;" (assignment_expression "CVar35 = pIVar10->compression" identifier = (field_expression "pIVar10->compression" identifier -> field_identifier)) ;) (expression_statement "iVar13 = -2;" (assignment_expression "iVar13 = -2" identifier = number_literal) ;) (expression_statement "uVar75 = 0xffffffff0000003d;" (assignment_expression "uVar75 = 0xffffffff0000003d" identifier = number_literal) ;) (goto_statement "goto LAB_00253a18;" goto statement_identifier ;) })) }) while (parenthesized_expression "(pFVar12 != (FILE *)0x3d)" ( (binary_expression "pFVar12 != (FILE *)0x3d" identifier != (cast_expression "(FILE *)0x3d" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "CVar35 = pIVar10->compression;" (assignment_expression "CVar35 = pIVar10->compression" identifier = (field_expression "pIVar10->compression" identifier -> field_identifier)) ;) (expression_statement "iVar13 = 0x7a;" (assignment_expression "iVar13 = 0x7a" identifier = number_literal) ;) }))) (labeled_statement "LAB_00253a18:\n              uVar14 = (uint)((ulonglong)uVar75 >> 0x20);" statement_identifier : (expression_statement "uVar14 = (uint)((ulonglong)uVar75 >> 0x20);" (assignment_expression "uVar14 = (uint)((ulonglong)uVar75 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar75 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar75 >> 0x20)" ( (binary_expression "(ulonglong)uVar75 >> 0x20" (cast_expression "(ulonglong)uVar75" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "uVar43 = (uint)uVar75;" (assignment_expression "uVar43 = (uint)uVar75" identifier = (cast_expression "(uint)uVar75" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(char *)&pFVar29->_flags = '\0';" (assignment_expression "*(char *)&pFVar29->_flags = '\0'" (pointer_expression "*(char *)&pFVar29->_flags" * (cast_expression "(char *)&pFVar29->_flags" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar29->_flags" & (field_expression "pFVar29->_flags" identifier -> field_identifier)))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar2 = *(ushort *)(CVar35 + iVar13);" (assignment_expression "uVar2 = *(ushort *)(CVar35 + iVar13)" identifier = (pointer_expression "*(ushort *)(CVar35 + iVar13)" * (cast_expression "(ushort *)(CVar35 + iVar13)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CVar35 + iVar13)" ( (binary_expression "CVar35 + iVar13" identifier + identifier) ))))) ;) (while_statement "while ((uVar2 & 0x20) != 0) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }" while (parenthesized_expression "((uVar2 & 0x20) != 0)" ( (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);\n              }" { (expression_statement "pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);" (assignment_expression "pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" identifier = (cast_expression "(FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;) (expression_statement "uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2);" (assignment_expression "uVar2 = *(ushort *)(pIVar10->compression + (int)pFVar12 * 2)" identifier = (pointer_expression "*(ushort *)(pIVar10->compression + (int)pFVar12 * 2)" * (cast_expression "(ushort *)(pIVar10->compression + (int)pFVar12 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar10->compression + (int)pFVar12 * 2)" ( (binary_expression "pIVar10->compression + (int)pFVar12 * 2" (field_expression "pIVar10->compression" identifier -> field_identifier) + (binary_expression "(int)pFVar12 * 2" (cast_expression "(int)pFVar12" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "unaff_s7 = unaff_s6;" (assignment_expression "unaff_s7 = unaff_s6" identifier = identifier) ;) (if_statement "if (pFVar12 == (FILE *)0x3d) {\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }" if (parenthesized_expression "(pFVar12 == (FILE *)0x3d)" ( (binary_expression "pFVar12 == (FILE *)0x3d" identifier == (cast_expression "(FILE *)0x3d" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = pFVar29;\n                if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }" { (expression_statement "pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);" (assignment_expression "pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" identifier = (cast_expression "(FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;) (if_statement "if ((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)) {\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }\n                else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }" if (parenthesized_expression "((pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff))" ( (binary_expression "(pFVar12 == (FILE *)0x7d) || (uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)" (parenthesized_expression "(pFVar12 == (FILE *)0x7d)" ( (binary_expression "pFVar12 == (FILE *)0x7d" identifier == (cast_expression "(FILE *)0x7d" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff)" ( (comma_expression "uVar14 = 0xfff, pFVar12 == (FILE *)0xffffffff" (assignment_expression "uVar14 = 0xfff" identifier = number_literal) , (binary_expression "pFVar12 == (FILE *)0xffffffff" identifier == (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                  uVar75 = CONCAT44(uVar14,uVar43);\n                }" { (expression_statement "uVar75 = CONCAT44(uVar14,uVar43);" (assignment_expression "uVar75 = CONCAT44(uVar14,uVar43)" identifier = (call_expression "CONCAT44(uVar14,uVar43)" identifier (argument_list "(uVar14,uVar43)" ( identifier , identifier )))) ;) }) (else_clause "else {\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }" else (compound_statement "{\n                  uVar43 = 0x7d;\n                  do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));\n                }" { (expression_statement "uVar43 = 0x7d;" (assignment_expression "uVar43 = 0x7d" identifier = number_literal) ;) (do_statement "do {\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  } while ((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff));" do (compound_statement "{\n                    iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = pFVar29;\n                    while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar75 = uVar3;\n                  }" { (expression_statement "iVar13 = (int)unaff_s7 - (int)unaff_s6;" (assignment_expression "iVar13 = (int)unaff_s7 - (int)unaff_s6" identifier = (binary_expression "(int)unaff_s7 - (int)unaff_s6" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s4 = pFVar29;" (assignment_expression "unaff_s4 = pFVar29" identifier = identifier) ;) (while_statement "while( true ) {\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      pFVar29 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar14,0x7d);\n                      uVar75 = CONCAT44(uVar14,0x7d);\n                      *(char *)&pFVar29->_flags = (char)pFVar12;\n                      unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);\n                      pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                      if (pFVar12 != (FILE *)0x5c) break;\n                      pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }\n                      if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;\n                      iVar13 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = pFVar29;\n                      uVar75 = uVar3;\n                      if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;\n                    }" { (expression_statement "pFVar29 = unaff_s7;" (assignment_expression "pFVar29 = unaff_s7" identifier = identifier) ;) (expression_statement "puVar7 = PTR_ResizeQuantumMemory_003a9420;" (assignment_expression "puVar7 = PTR_ResizeQuantumMemory_003a9420" identifier = identifier) ;) (if_statement "if (uVar14 <= iVar13 + 1U) {\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }" if (parenthesized_expression "(uVar14 <= iVar13 + 1U)" ( (binary_expression "uVar14 <= iVar13 + 1U" identifier <= (binary_expression "iVar13 + 1U" identifier + number_literal)) )) (compound_statement "{\n                        uVar14 = uVar14 * 2;\n                        *(undefined1 *)&pFVar29->_flags = 0;\n                        unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);\n                        unaff_s7 = pFVar29;\n                        if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;\n                        iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);\n                      }" { (expression_statement "uVar14 = uVar14 * 2;" (assignment_expression "uVar14 = uVar14 * 2" identifier = (binary_expression "uVar14 * 2" identifier * number_literal)) ;) (expression_statement "*(undefined1 *)&pFVar29->_flags = 0;" (assignment_expression "*(undefined1 *)&pFVar29->_flags = 0" (pointer_expression "*(undefined1 *)&pFVar29->_flags" * (cast_expression "(undefined1 *)&pFVar29->_flags" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar29->_flags" & (field_expression "pFVar29->_flags" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1);" (assignment_expression "unaff_s6 = (FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1)" identifier = (cast_expression "(FILE *)(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar7)(unaff_s6,uVar14 + 0x1000,1)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6,uVar14 + 0x1000,1)" ( identifier , (binary_expression "uVar14 + 0x1000" identifier + number_literal) , number_literal ))))) ;) (expression_statement "unaff_s7 = pFVar29;" (assignment_expression "unaff_s7 = pFVar29" identifier = identifier) ;) (if_statement "if (unaff_s6 == (FILE *)0x0) goto LAB_00254848;" if (parenthesized_expression "(unaff_s6 == (FILE *)0x0)" ( (binary_expression "unaff_s6 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00254848;" goto statement_identifier ;)) (expression_statement "iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6);" (assignment_expression "iVar13 = (*(code *)PTR_strlen_003a9338)(unaff_s6)" identifier = (call_expression "(*(code *)PTR_strlen_003a9338)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" ( (pointer_expression "*(code *)PTR_strlen_003a9338" * (cast_expression "(code *)PTR_strlen_003a9338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier )))) ;) (expression_statement "pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47);" (assignment_expression "pFVar29 = (FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47)" identifier = (cast_expression "(FILE *)(unaff_s6->_shortbuf + iVar13 + -0x47)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6->_shortbuf + iVar13 + -0x47)" ( (binary_expression "unaff_s6->_shortbuf + iVar13 + -0x47" (binary_expression "unaff_s6->_shortbuf + iVar13" (field_expression "unaff_s6->_shortbuf" identifier -> field_identifier) + identifier) + number_literal) )))) ;) })) (expression_statement "puVar7 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar7 = PTR_ReadBlobByte_003a97f0" identifier = identifier) ;) (expression_statement "uVar3 = CONCAT44(uVar14,0x7d);" (assignment_expression "uVar3 = CONCAT44(uVar14,0x7d)" identifier = (call_expression "CONCAT44(uVar14,0x7d)" identifier (argument_list "(uVar14,0x7d)" ( identifier , number_literal )))) ;) (expression_statement "uVar75 = CONCAT44(uVar14,0x7d);" (assignment_expression "uVar75 = CONCAT44(uVar14,0x7d)" identifier = (call_expression "CONCAT44(uVar14,0x7d)" identifier (argument_list "(uVar14,0x7d)" ( identifier , number_literal )))) ;) (expression_statement "*(char *)&pFVar29->_flags = (char)pFVar12;" (assignment_expression "*(char *)&pFVar29->_flags = (char)pFVar12" (pointer_expression "*(char *)&pFVar29->_flags" * (cast_expression "(char *)&pFVar29->_flags" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar29->_flags" & (field_expression "pFVar29->_flags" identifier -> field_identifier)))) = (cast_expression "(char)pFVar12" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1);" (assignment_expression "unaff_s7 = (FILE *)((int)&pFVar29->_flags + 1)" identifier = (cast_expression "(FILE *)((int)&pFVar29->_flags + 1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFVar29->_flags + 1)" ( (binary_expression "(int)&pFVar29->_flags + 1" (cast_expression "(int)&pFVar29->_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFVar29->_flags" & (field_expression "pFVar29->_flags" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);" (assignment_expression "pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9)" identifier = (cast_expression "(FILE *)(*(code *)puVar7)(pIVar9)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar7)(pIVar9)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;) (if_statement "if (pFVar12 != (FILE *)0x5c) break;" if (parenthesized_expression "(pFVar12 != (FILE *)0x5c)" ( (binary_expression "pFVar12 != (FILE *)0x5c" identifier != (cast_expression "(FILE *)0x5c" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);" (assignment_expression "pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" identifier = (cast_expression "(FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;) (expression_statement "puVar7 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar7 = PTR_ReadBlobByte_003a97f0" identifier = identifier) ;) (if_statement "if (pFVar12 == (FILE *)0x7d) {\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }" if (parenthesized_expression "(pFVar12 == (FILE *)0x7d)" ( (binary_expression "pFVar12 == (FILE *)0x7d" identifier == (cast_expression "(FILE *)0x7d" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        *(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;\n                        unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);\n                        pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);\n                        break;\n                      }" { (expression_statement "*(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d;" (assignment_expression "*(undefined1 *)((int)&pFVar29->_flags + 1) = 0x7d" (pointer_expression "*(undefined1 *)((int)&pFVar29->_flags + 1)" * (cast_expression "(undefined1 *)((int)&pFVar29->_flags + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFVar29->_flags + 1)" ( (binary_expression "(int)&pFVar29->_flags + 1" (cast_expression "(int)&pFVar29->_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFVar29->_flags" & (field_expression "pFVar29->_flags" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2);" (assignment_expression "unaff_s7 = (FILE *)((int)&pFVar29->_flags + 2)" identifier = (cast_expression "(FILE *)((int)&pFVar29->_flags + 2)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFVar29->_flags + 2)" ( (binary_expression "(int)&pFVar29->_flags + 2" (cast_expression "(int)&pFVar29->_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFVar29->_flags" & (field_expression "pFVar29->_flags" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9);" (assignment_expression "pFVar12 = (FILE *)(*(code *)puVar7)(pIVar9)" identifier = (cast_expression "(FILE *)(*(code *)puVar7)(pIVar9)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar7)(pIVar9)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;) (break_statement "break;" break ;) })) (if_statement "if (*(char *)&unaff_s6->_flags != '{') goto LAB_002547c4;" if (parenthesized_expression "(*(char *)&unaff_s6->_flags != '{')" ( (binary_expression "*(char *)&unaff_s6->_flags != '{'" (pointer_expression "*(char *)&unaff_s6->_flags" * (cast_expression "(char *)&unaff_s6->_flags" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s6->_flags" & (field_expression "unaff_s6->_flags" identifier -> field_identifier)))) != (char_literal "'{'" ' character ')) )) (goto_statement "goto LAB_002547c4;" goto statement_identifier ;)) (expression_statement "iVar13 = (int)unaff_s7 - (int)unaff_s6;" (assignment_expression "iVar13 = (int)unaff_s7 - (int)unaff_s6" identifier = (binary_expression "(int)unaff_s7 - (int)unaff_s6" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s4 = pFVar29;" (assignment_expression "unaff_s4 = pFVar29" identifier = identifier) ;) (expression_statement "uVar75 = uVar3;" (assignment_expression "uVar75 = uVar3" identifier = identifier) ;) (if_statement "if (pFVar12 == (FILE *)0xffffffff) goto joined_r0x00254fe4;" if (parenthesized_expression "(pFVar12 == (FILE *)0xffffffff)" ( (binary_expression "pFVar12 == (FILE *)0xffffffff" identifier == (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto joined_r0x00254fe4;" goto statement_identifier ;)) })) (if_statement "if (*(char *)&unaff_s6->_flags == '{') goto LAB_002547e0;" if (parenthesized_expression "(*(char *)&unaff_s6->_flags == '{')" ( (binary_expression "*(char *)&unaff_s6->_flags == '{'" (pointer_expression "*(char *)&unaff_s6->_flags" * (cast_expression "(char *)&unaff_s6->_flags" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s6->_flags" & (field_expression "unaff_s6->_flags" identifier -> field_identifier)))) == (char_literal "'{'" ' character ')) )) (goto_statement "goto LAB_002547e0;" goto statement_identifier ;)) (labeled_statement "LAB_002547c4:\n                    if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;" statement_identifier : (if_statement "if ((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;" if (parenthesized_expression "((*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0)" ( (binary_expression "(*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20)" ( (binary_expression "*(ushort *)(pIVar10->compression + (int)pFVar12 * 2) & 0x20" (pointer_expression "*(ushort *)(pIVar10->compression + (int)pFVar12 * 2)" * (cast_expression "(ushort *)(pIVar10->compression + (int)pFVar12 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar10->compression + (int)pFVar12 * 2)" ( (binary_expression "pIVar10->compression + (int)pFVar12 * 2" (field_expression "pIVar10->compression" identifier -> field_identifier) + (binary_expression "(int)pFVar12 * 2" (cast_expression "(int)pFVar12" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00253a68;" goto statement_identifier ;))) (labeled_statement "LAB_002547e0:\n                    uVar75 = uVar3;" statement_identifier : (expression_statement "uVar75 = uVar3;" (assignment_expression "uVar75 = uVar3" identifier = identifier) ;)) }) while (parenthesized_expression "((pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff))" ( (binary_expression "(pFVar12 != (FILE *)0x7d) && (pFVar12 != (FILE *)0xffffffff)" (parenthesized_expression "(pFVar12 != (FILE *)0x7d)" ( (binary_expression "pFVar12 != (FILE *)0x7d" identifier != (cast_expression "(FILE *)0x7d" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pFVar12 != (FILE *)0xffffffff)" ( (binary_expression "pFVar12 != (FILE *)0xffffffff" identifier != (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ;) }))) (labeled_statement "joined_r0x00254fe4:\n                unaff_s4 = pFVar29;" statement_identifier : (expression_statement "unaff_s4 = pFVar29;" (assignment_expression "unaff_s4 = pFVar29" identifier = identifier) ;)) (if_statement "if (unaff_s6 == (FILE *)0x0) {\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }" if (parenthesized_expression "(unaff_s6 == (FILE *)0x0)" ( (binary_expression "unaff_s6 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00254848:\n                  uVar55 = 0x14c;\n                  goto LAB_00254850;\n                }" { (labeled_statement "LAB_00254848:\n                  uVar55 = 0x14c;" statement_identifier : (expression_statement "uVar55 = 0x14c;" (assignment_expression "uVar55 = 0x14c" identifier = number_literal) ;)) (goto_statement "goto LAB_00254850;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00253a68:\n              *(undefined1 *)&unaff_s7->_flags = 0;" statement_identifier : (expression_statement "*(undefined1 *)&unaff_s7->_flags = 0;" (assignment_expression "*(undefined1 *)&unaff_s7->_flags = 0" (pointer_expression "*(undefined1 *)&unaff_s7->_flags" * (cast_expression "(undefined1 *)&unaff_s7->_flags" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s7->_flags" & (field_expression "unaff_s7->_flags" identifier -> field_identifier)))) = number_literal) ;)) (if_statement "if (*(char *)&unaff_s6->_flags == '{') {\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }" if (parenthesized_expression "(*(char *)&unaff_s6->_flags == '{')" ( (binary_expression "*(char *)&unaff_s6->_flags == '{'" (pointer_expression "*(char *)&unaff_s6->_flags" * (cast_expression "(char *)&unaff_s6->_flags" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s6->_flags" & (field_expression "unaff_s6->_flags" identifier -> field_identifier)))) == (char_literal "'{'" ' character ')) )) (compound_statement "{\n                uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);\n              }" { (expression_statement "uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6);" (assignment_expression "uVar55 = (*(code *)PTR_strlen_003a9338)(unaff_s6)" identifier = (call_expression "(*(code *)PTR_strlen_003a9338)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" ( (pointer_expression "*(code *)PTR_strlen_003a9338" * (cast_expression "(code *)PTR_strlen_003a9338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6,(undefined1 *)((int)&unaff_s6->_flags + 1),uVar55)" ( identifier , (cast_expression "(undefined1 *)((int)&unaff_s6->_flags + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s6->_flags + 1)" ( (binary_expression "(int)&unaff_s6->_flags + 1" (cast_expression "(int)&unaff_s6->_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s6->_flags" & (field_expression "unaff_s6->_flags" identifier -> field_identifier))) + number_literal) ))) , identifier ))) ;) })) (expression_statement "uVar14 = (byte)keyword[0] - 0x41 & 0xff;" (assignment_expression "uVar14 = (byte)keyword[0] - 0x41 & 0xff" identifier = (binary_expression "(byte)keyword[0] - 0x41 & 0xff" (binary_expression "(byte)keyword[0] - 0x41" (cast_expression "(byte)keyword[0]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "keyword[0]" identifier [ number_literal ])) - number_literal) & number_literal)) ;) (if_statement "if (uVar14 < 0x37) {\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }" if (parenthesized_expression "(uVar14 < 0x37)" ( (binary_expression "uVar14 < 0x37" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00253a98 */\n                    /* WARNING: Treating indirect jump as call */\n                pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();\n                return pIVar15;\n              }" { comment comment (expression_statement "pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))();" (assignment_expression "pIVar15 = (Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))()" identifier = (cast_expression "(Image *)(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))()" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380))" * (cast_expression "(code *)(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380))" ( (binary_expression "&_gp + *(int *)(puVar6 + uVar14 * 4 + -0x7380)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(puVar6 + uVar14 * 4 + -0x7380)" * (cast_expression "(int *)(puVar6 + uVar14 * 4 + -0x7380)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + uVar14 * 4 + -0x7380)" ( (binary_expression "puVar6 + uVar14 * 4 + -0x7380" (binary_expression "puVar6 + uVar14 * 4" identifier + (binary_expression "uVar14 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pIVar15;" return identifier ;) })) (expression_statement "pFVar45 = unaff_s6;" (assignment_expression "pFVar45 = unaff_s6" identifier = identifier) ;) (expression_statement "(*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception);" (call_expression "(*(code *)PTR_SetImageProperty_003a9534)(pIVar9,unaff_s5,unaff_s6,exception)" (parenthesized_expression "(*(code *)PTR_SetImageProperty_003a9534)" ( (pointer_expression "*(code *)PTR_SetImageProperty_003a9534" * (cast_expression "(code *)PTR_SetImageProperty_003a9534" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9,unaff_s5,unaff_s6,exception)" ( identifier , identifier , identifier , identifier ))) ;) }))))) (expression_statement "CVar35 = pIVar10->compression;" (assignment_expression "CVar35 = pIVar10->compression" identifier = (field_expression "pIVar10->compression" identifier -> field_identifier)) ;) (expression_statement "uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);" (assignment_expression "uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2)" identifier = (pointer_expression "*(ushort *)(CVar35 + (int)pFVar12 * 2)" * (cast_expression "(ushort *)(CVar35 + (int)pFVar12 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CVar35 + (int)pFVar12 * 2)" ( (binary_expression "CVar35 + (int)pFVar12 * 2" identifier + (binary_expression "(int)pFVar12 * 2" (cast_expression "(int)pFVar12" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if ((uVar2 & 0x20) == 0) goto LAB_0025399c;" if (parenthesized_expression "((uVar2 & 0x20) == 0)" ( (binary_expression "(uVar2 & 0x20) == 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0025399c;" goto statement_identifier ;)) (do_statement "do {\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            } while ((uVar2 & 0x20) != 0);" do (compound_statement "{\n              pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n              CVar35 = pIVar10->compression;\n              uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);\n            }" { (expression_statement "pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);" (assignment_expression "pFVar12 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" identifier = (cast_expression "(FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;) (expression_statement "CVar35 = pIVar10->compression;" (assignment_expression "CVar35 = pIVar10->compression" identifier = (field_expression "pIVar10->compression" identifier -> field_identifier)) ;) (expression_statement "uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2);" (assignment_expression "uVar2 = *(ushort *)(CVar35 + (int)pFVar12 * 2)" identifier = (pointer_expression "*(ushort *)(CVar35 + (int)pFVar12 * 2)" * (cast_expression "(ushort *)(CVar35 + (int)pFVar12 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CVar35 + (int)pFVar12 * 2)" ( (binary_expression "CVar35 + (int)pFVar12 * 2" identifier + (binary_expression "(int)pFVar12 * 2" (cast_expression "(int)pFVar12" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) }) while (parenthesized_expression "((uVar2 & 0x20) != 0)" ( (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) != number_literal) )) ;) (expression_statement "unaff_s4 = pFVar29;" (assignment_expression "unaff_s4 = pFVar29" identifier = identifier) ;) (if_statement "if ((uVar2 & 0x80) == 0) break;" if (parenthesized_expression "((uVar2 & 0x80) == 0)" ( (binary_expression "(uVar2 & 0x80) == 0" (parenthesized_expression "(uVar2 & 0x80)" ( (binary_expression "uVar2 & 0x80" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(unaff_s6);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" ( (pointer_expression "*(code *)PTR_DestroyString_003a9074" * (cast_expression "(code *)PTR_DestroyString_003a9074" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);" (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))) ;) (expression_statement "iVar13 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);" (assignment_expression "iVar13 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474)" identifier = (call_expression "(*(code *)PTR_LocaleCompare_003a9110)\n                           (id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474)" (parenthesized_expression "(*(code *)PTR_LocaleCompare_003a9110)" ( (pointer_expression "*(code *)PTR_LocaleCompare_003a9110" * (cast_expression "(code *)PTR_LocaleCompare_003a9110" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(id,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474)" ( identifier , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474" identifier + number_literal) )))) ;) (expression_statement "unaff_s8 = pFVar12;" (assignment_expression "unaff_s8 = pFVar12" identifier = identifier) ;) (if_statement "if ((((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))) ||\n           ((char *)0x3f < pIVar9->page + -1)) {\n          uVar55 = 0x31d;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -400;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = image_info->filename;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n          pIVar15 = (Image *)0x0;\n          image_info = pIVar10;\n          goto LAB_002546dc;\n        }" if (parenthesized_expression "((((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))) ||\n           ((char *)0x3f < pIVar9->page + -1))" ( (binary_expression "(((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))) ||\n           ((char *)0x3f < pIVar9->page + -1)" (parenthesized_expression "(((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4)))))))" ( (binary_expression "((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))) ||\n            ((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))" (parenthesized_expression "((((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0))))" ( (binary_expression "(((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)) ||\n             ((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))" (parenthesized_expression "(((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse))" ( (binary_expression "((iVar13 != 0) || (pIVar9->compression == UndefinedCompression)) ||\n              (pIVar9->temporary == MagickFalse)" (parenthesized_expression "((iVar13 != 0) || (pIVar9->compression == UndefinedCompression))" ( (binary_expression "(iVar13 != 0) || (pIVar9->compression == UndefinedCompression)" (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) || (parenthesized_expression "(pIVar9->compression == UndefinedCompression)" ( (binary_expression "pIVar9->compression == UndefinedCompression" (field_expression "pIVar9->compression" identifier -> field_identifier) == identifier) ))) )) || (parenthesized_expression "(pIVar9->temporary == MagickFalse)" ( (binary_expression "pIVar9->temporary == MagickFalse" (field_expression "pIVar9->temporary" identifier -> field_identifier) == identifier) ))) )) || (parenthesized_expression "((pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)))" ( (parenthesized_expression "(pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0))" ( (binary_expression "pIVar9->size == (char *)0x0 || (pIVar9->extract == (char *)0x0)" (binary_expression "pIVar9->size == (char *)0x0" (field_expression "pIVar9->size" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(pIVar9->extract == (char *)0x0)" ( (binary_expression "pIVar9->extract == (char *)0x0" (field_expression "pIVar9->extract" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) || (parenthesized_expression "((0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))))" ( (parenthesized_expression "(0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4)))))" ( (binary_expression "0x40 < *(uint *)(pIVar9->magick + 0xb0) ||\n             ((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))" (binary_expression "0x40 < *(uint *)(pIVar9->magick + 0xb0)" number_literal < (pointer_expression "*(uint *)(pIVar9->magick + 0xb0)" * (cast_expression "(uint *)(pIVar9->magick + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar9->magick + 0xb0)" ( (binary_expression "pIVar9->magick + 0xb0" (field_expression "pIVar9->magick" identifier -> field_identifier) + number_literal) ))))) || (parenthesized_expression "((0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))))" ( (parenthesized_expression "(0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4)))" ( (binary_expression "0x38 < *(uint *)(pIVar9->magick + 0xb4) ||\n              (0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))" (binary_expression "0x38 < *(uint *)(pIVar9->magick + 0xb4)" number_literal < (pointer_expression "*(uint *)(pIVar9->magick + 0xb4)" * (cast_expression "(uint *)(pIVar9->magick + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar9->magick + 0xb4)" ( (binary_expression "pIVar9->magick + 0xb4" (field_expression "pIVar9->magick" identifier -> field_identifier) + number_literal) ))))) || (parenthesized_expression "(0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4))" ( (binary_expression "0x3f < *(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4)" number_literal < (binary_expression "*(uint *)(pIVar9->magick + 0xb0) + *(uint *)(pIVar9->magick + 0xb4)" (pointer_expression "*(uint *)(pIVar9->magick + 0xb0)" * (cast_expression "(uint *)(pIVar9->magick + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar9->magick + 0xb0)" ( (binary_expression "pIVar9->magick + 0xb0" (field_expression "pIVar9->magick" identifier -> field_identifier) + number_literal) )))) + (pointer_expression "*(uint *)(pIVar9->magick + 0xb4)" * (cast_expression "(uint *)(pIVar9->magick + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar9->magick + 0xb4)" ( (binary_expression "pIVar9->magick + 0xb4" (field_expression "pIVar9->magick" identifier -> field_identifier) + number_literal) )))))) ))) )) ))) )) ))) )) || (parenthesized_expression "((char *)0x3f < pIVar9->page + -1)" ( (binary_expression "(char *)0x3f < pIVar9->page + -1" (cast_expression "(char *)0x3f" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "pIVar9->page + -1" (field_expression "pIVar9->page" identifier -> field_identifier) + number_literal)) ))) )) (compound_statement "{\n          uVar55 = 0x31d;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -400;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = image_info->filename;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          (*(code *)PTR_DestroyImageList_003a9510)(pIVar9);\n          pIVar15 = (Image *)0x0;\n          image_info = pIVar10;\n          goto LAB_002546dc;\n        }" { (expression_statement "uVar55 = 0x31d;" (assignment_expression "uVar55 = 0x31d" identifier = number_literal) ;) (expression_statement "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "local_30d8._4_4_ = PTR_s_courses_003a88ec + -400;" (assignment_expression "local_30d8._4_4_ = PTR_s_courses_003a88ec + -400" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (binary_expression "PTR_s_courses_003a88ec + -400" identifier + number_literal)) ;) (expression_statement "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ExceptionInfo *)&DAT_000001a9" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (labeled_statement "LAB_002546ac:\n          local_30cc = image_info->filename;" statement_identifier : (expression_statement "local_30cc = image_info->filename;" (assignment_expression "local_30cc = image_info->filename" identifier = (field_expression "image_info->filename" identifier -> field_identifier)) ;)) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,uVar55)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(exception,pIVar40,pFVar45,uVar55)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(pIVar9);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(pIVar9)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" ( (pointer_expression "*(code *)PTR_CloseBlob_003a9688" * (cast_expression "(code *)PTR_CloseBlob_003a9688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_DestroyImageList_003a9510)(pIVar9);" (call_expression "(*(code *)PTR_DestroyImageList_003a9510)(pIVar9)" (parenthesized_expression "(*(code *)PTR_DestroyImageList_003a9510)" ( (pointer_expression "*(code *)PTR_DestroyImageList_003a9510" * (cast_expression "(code *)PTR_DestroyImageList_003a9510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))) ;) (expression_statement "pIVar15 = (Image *)0x0;" (assignment_expression "pIVar15 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "image_info = pIVar10;" (assignment_expression "image_info = pIVar10" identifier = identifier) ;) (goto_statement "goto LAB_002546dc;" goto statement_identifier ;) })) (expression_statement "iVar13 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);" (assignment_expression "iVar13 = (*(code *)PTR_GetMagickSignature_003a96ec)(0)" identifier = (call_expression "(*(code *)PTR_GetMagickSignature_003a96ec)(0)" (parenthesized_expression "(*(code *)PTR_GetMagickSignature_003a96ec)" ( (pointer_expression "*(code *)PTR_GetMagickSignature_003a96ec" * (cast_expression "(code *)PTR_GetMagickSignature_003a96ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal )))) ;) (if_statement "if (iVar11 != iVar13) {\n          uVar55 = 0x323;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }" if (parenthesized_expression "(iVar11 != iVar13)" ( (binary_expression "iVar11 != iVar13" identifier != identifier) )) (compound_statement "{\n          uVar55 = 0x323;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }" { (expression_statement "uVar55 = 0x323;" (assignment_expression "uVar55 = 0x323" identifier = number_literal) ;) (expression_statement "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460;" (assignment_expression "local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460" identifier + number_literal)) ;) (expression_statement "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;" (assignment_expression "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ExceptionInfo *)&DAT_000001bd" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001bd" & identifier))) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (if_statement "if (pIVar9->file != (FILE *)0x0) {\n          unaff_s6 = (FILE *)0x0;\n          puVar32 = (undefined1 *)0x1000;\n          pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n          pIVar9->blob = pFVar29;\n          do {\n            *(undefined1 *)&pFVar29->_flags = 0;\n            pFVar19 = pFVar29;\n            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }\n            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n            if (iVar11 == -1) break;\n            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);\n            *(char *)&pFVar19->_flags = (char)iVar11;\n            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);\n            unaff_s4 = pFVar19;\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n          } while (iVar11 != 0);\n        }" if (parenthesized_expression "(pIVar9->file != (FILE *)0x0)" ( (binary_expression "pIVar9->file != (FILE *)0x0" (field_expression "pIVar9->file" identifier -> field_identifier) != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          unaff_s6 = (FILE *)0x0;\n          puVar32 = (undefined1 *)0x1000;\n          pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);\n          pIVar9->blob = pFVar29;\n          do {\n            *(undefined1 *)&pFVar29->_flags = 0;\n            pFVar19 = pFVar29;\n            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }\n            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n            if (iVar11 == -1) break;\n            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);\n            *(char *)&pFVar19->_flags = (char)iVar11;\n            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);\n            unaff_s4 = pFVar19;\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n          } while (iVar11 != 0);\n        }" { (expression_statement "unaff_s6 = (FILE *)0x0;" (assignment_expression "unaff_s6 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar32 = (undefined1 *)0x1000;" (assignment_expression "puVar32 = (undefined1 *)0x1000" identifier = (cast_expression "(undefined1 *)0x1000" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0);" (assignment_expression "pFVar29 = (FILE *)(*(code *)PTR_AcquireString_003a9814)(0)" identifier = (cast_expression "(FILE *)(*(code *)PTR_AcquireString_003a9814)(0)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireString_003a9814)(0)" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" ( (pointer_expression "*(code *)PTR_AcquireString_003a9814" * (cast_expression "(code *)PTR_AcquireString_003a9814" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "pIVar9->blob = pFVar29;" (assignment_expression "pIVar9->blob = pFVar29" (field_expression "pIVar9->blob" identifier -> field_identifier) = identifier) ;) (do_statement "do {\n            *(undefined1 *)&pFVar29->_flags = 0;\n            pFVar19 = pFVar29;\n            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }\n            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n            if (iVar11 == -1) break;\n            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);\n            *(char *)&pFVar19->_flags = (char)iVar11;\n            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);\n            unaff_s4 = pFVar19;\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n          } while (iVar11 != 0);" do (compound_statement "{\n            *(undefined1 *)&pFVar29->_flags = 0;\n            pFVar19 = pFVar29;\n            if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }\n            iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n            if (iVar11 == -1) break;\n            pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);\n            *(char *)&pFVar19->_flags = (char)iVar11;\n            unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);\n            unaff_s4 = pFVar19;\n            uVar75 = CONCAT44(puVar32,0xffffffff);\n          }" { (expression_statement "*(undefined1 *)&pFVar29->_flags = 0;" (assignment_expression "*(undefined1 *)&pFVar29->_flags = 0" (pointer_expression "*(undefined1 *)&pFVar29->_flags" * (cast_expression "(undefined1 *)&pFVar29->_flags" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar29->_flags" & (field_expression "pFVar29->_flags" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "pFVar19 = pFVar29;" (assignment_expression "pFVar19 = pFVar29" identifier = identifier) ;) (if_statement "if (puVar32 <= unaff_s6[0x1a]._unused2 + 0x20) {\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }" if (parenthesized_expression "(puVar32 <= unaff_s6[0x1a]._unused2 + 0x20)" ( (binary_expression "puVar32 <= unaff_s6[0x1a]._unused2 + 0x20" identifier <= (binary_expression "unaff_s6[0x1a]._unused2 + 0x20" (field_expression "unaff_s6[0x1a]._unused2" (subscript_expression "unaff_s6[0x1a]" identifier [ number_literal ]) . field_identifier) + number_literal)) )) (compound_statement "{\n              puVar32 = (undefined1 *)((int)puVar32 * 2);\n              uVar75 = CONCAT44(puVar32,0xffffffff);\n              pFVar45 = (FILE *)0x1;\n              pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);\n              pIVar9->blob = pvVar16;\n              if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);\n            }" { (expression_statement "puVar32 = (undefined1 *)((int)puVar32 * 2);" (assignment_expression "puVar32 = (undefined1 *)((int)puVar32 * 2)" identifier = (cast_expression "(undefined1 *)((int)puVar32 * 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar32 * 2)" ( (binary_expression "(int)puVar32 * 2" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "uVar75 = CONCAT44(puVar32,0xffffffff);" (assignment_expression "uVar75 = CONCAT44(puVar32,0xffffffff)" identifier = (call_expression "CONCAT44(puVar32,0xffffffff)" identifier (argument_list "(puVar32,0xffffffff)" ( identifier , number_literal )))) ;) (expression_statement "pFVar45 = (FILE *)0x1;" (assignment_expression "pFVar45 = (FILE *)0x1" identifier = (cast_expression "(FILE *)0x1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000);" (assignment_expression "pvVar16 = (void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000)" identifier = (cast_expression "(void *)(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                          (pIVar9->blob,puVar32 + 0x1000)" (parenthesized_expression "(*(code *)PTR_ResizeQuantumMemory_003a9420)" ( (pointer_expression "*(code *)PTR_ResizeQuantumMemory_003a9420" * (cast_expression "(code *)PTR_ResizeQuantumMemory_003a9420" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9->blob,puVar32 + 0x1000)" ( (field_expression "pIVar9->blob" identifier -> field_identifier) , (binary_expression "puVar32 + 0x1000" identifier + number_literal) ))))) ;) (expression_statement "pIVar9->blob = pvVar16;" (assignment_expression "pIVar9->blob = pvVar16" (field_expression "pIVar9->blob" identifier -> field_identifier) = identifier) ;) (if_statement "if (pvVar16 == (void *)0x0) {\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }" if (parenthesized_expression "(pvVar16 == (void *)0x0)" ( (binary_expression "pvVar16 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar55 = 0x341;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }" { (expression_statement "uVar55 = 0x341;" (assignment_expression "uVar55 = 0x341" identifier = number_literal) ;) (expression_statement "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc;" (assignment_expression "local_30d8._4_4_ = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc" identifier + number_literal)) ;) (expression_statement "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ExceptionInfo *)&DAT_000001a9" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6);" (assignment_expression "pFVar19 = (FILE *)((int)pvVar16 + (int)unaff_s6)" identifier = (cast_expression "(FILE *)((int)pvVar16 + (int)unaff_s6)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar16 + (int)unaff_s6)" ( (binary_expression "(int)pvVar16 + (int)unaff_s6" (cast_expression "(int)pvVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);" (assignment_expression "iVar11 = (*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" identifier = (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier )))) ;) (expression_statement "uVar75 = CONCAT44(puVar32,0xffffffff);" (assignment_expression "uVar75 = CONCAT44(puVar32,0xffffffff)" identifier = (call_expression "CONCAT44(puVar32,0xffffffff)" identifier (argument_list "(puVar32,0xffffffff)" ( identifier , number_literal )))) ;) (if_statement "if (iVar11 == -1) break;" if (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pFVar29 = (FILE *)((int)&pFVar19->_flags + 1);" (assignment_expression "pFVar29 = (FILE *)((int)&pFVar19->_flags + 1)" identifier = (cast_expression "(FILE *)((int)&pFVar19->_flags + 1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFVar19->_flags + 1)" ( (binary_expression "(int)&pFVar19->_flags + 1" (cast_expression "(int)&pFVar19->_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFVar19->_flags" & (field_expression "pFVar19->_flags" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "*(char *)&pFVar19->_flags = (char)iVar11;" (assignment_expression "*(char *)&pFVar19->_flags = (char)iVar11" (pointer_expression "*(char *)&pFVar19->_flags" * (cast_expression "(char *)&pFVar19->_flags" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar19->_flags" & (field_expression "pFVar19->_flags" identifier -> field_identifier)))) = (cast_expression "(char)iVar11" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1);" (assignment_expression "unaff_s6 = (FILE *)((int)&unaff_s6->_flags + 1)" identifier = (cast_expression "(FILE *)((int)&unaff_s6->_flags + 1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s6->_flags + 1)" ( (binary_expression "(int)&unaff_s6->_flags + 1" (cast_expression "(int)&unaff_s6->_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s6->_flags" & (field_expression "unaff_s6->_flags" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "unaff_s4 = pFVar19;" (assignment_expression "unaff_s4 = pFVar19" identifier = identifier) ;) (expression_statement "uVar75 = CONCAT44(puVar32,0xffffffff);" (assignment_expression "uVar75 = CONCAT44(puVar32,0xffffffff)" identifier = (call_expression "CONCAT44(puVar32,0xffffffff)" identifier (argument_list "(puVar32,0xffffffff)" ( identifier , number_literal )))) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) })) (expression_statement "pIVar40 = (ImageInfo *)0x0;" (assignment_expression "pIVar40 = (ImageInfo *)0x0" identifier = (cast_expression "(ImageInfo *)0x0" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s4 = (FILE *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9);" (assignment_expression "unaff_s4 = (FILE *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9)" identifier = (cast_expression "(FILE *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetImageQuantumDepth_003a91e8)(pIVar9)" (parenthesized_expression "(*(code *)PTR_GetImageQuantumDepth_003a91e8)" ( (pointer_expression "*(code *)PTR_GetImageQuantumDepth_003a91e8" * (cast_expression "(code *)PTR_GetImageQuantumDepth_003a91e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;) (if_statement "if (pIVar9->compression == B44Compression) {\n          pcVar42 = pIVar9->scenes;\n          uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n          uVar14 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar43 = uVar14 * (int)pcVar42;\n          if ((int)((ulonglong)uVar75 >> 0x20) == 0) {\n            uVar43 = (uint)((uint)uVar75 < uVar43);\n            uVar75 = CONCAT44(uVar14,uVar43);\n            if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          pIVar40 = (ImageInfo *)0x58;\n          sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1);\n          pIVar9->scene = sVar17;\n          if (sVar17 == 0) {\n            uVar55 = 0x381;\nLAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n            local_30d8._0_4_ = (ExceptionInfo *)0x190;\n            unaff_s8 = pFVar12;\n            goto LAB_002546ac;\n          }\n          uVar75 = CONCAT44(uVar14,uVar43);\n          if (pIVar9->scenes != (char *)0x0) {\n            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);\n            if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }\n            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);\n            pFVar45 = pFVar29;\n            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);\n            pcVar42 = pIVar9->scenes;\n            iVar13 = (int)pcVar42 * uVar14;\n            uVar75 = CONCAT44(iVar13,pFVar29);\n            if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n            uVar75 = CONCAT44(iVar13,pFVar29);\n          }\n        }" if (parenthesized_expression "(pIVar9->compression == B44Compression)" ( (binary_expression "pIVar9->compression == B44Compression" (field_expression "pIVar9->compression" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          pcVar42 = pIVar9->scenes;\n          uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);\n          uVar14 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar43 = uVar14 * (int)pcVar42;\n          if ((int)((ulonglong)uVar75 >> 0x20) == 0) {\n            uVar43 = (uint)((uint)uVar75 < uVar43);\n            uVar75 = CONCAT44(uVar14,uVar43);\n            if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          pIVar40 = (ImageInfo *)0x58;\n          sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1);\n          pIVar9->scene = sVar17;\n          if (sVar17 == 0) {\n            uVar55 = 0x381;\nLAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n            local_30d8._0_4_ = (ExceptionInfo *)0x190;\n            unaff_s8 = pFVar12;\n            goto LAB_002546ac;\n          }\n          uVar75 = CONCAT44(uVar14,uVar43);\n          if (pIVar9->scenes != (char *)0x0) {\n            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);\n            if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }\n            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);\n            pFVar45 = pFVar29;\n            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);\n            pcVar42 = pIVar9->scenes;\n            iVar13 = (int)pcVar42 * uVar14;\n            uVar75 = CONCAT44(iVar13,pFVar29);\n            if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n            uVar75 = CONCAT44(iVar13,pFVar29);\n          }\n        }" { (expression_statement "pcVar42 = pIVar9->scenes;" (assignment_expression "pcVar42 = pIVar9->scenes" identifier = (field_expression "pIVar9->scenes" identifier -> field_identifier)) ;) (expression_statement "uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);" (assignment_expression "uVar75 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9)" identifier = (call_expression "(*(code *)PTR_GetBlobSize_003a94b8)(pIVar9)" (parenthesized_expression "(*(code *)PTR_GetBlobSize_003a94b8)" ( (pointer_expression "*(code *)PTR_GetBlobSize_003a94b8" * (cast_expression "(code *)PTR_GetBlobSize_003a94b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier )))) ;) (expression_statement "uVar14 = (uint)((int)unaff_s4 * 3) >> 3;" (assignment_expression "uVar14 = (uint)((int)unaff_s4 * 3) >> 3" identifier = (binary_expression "(uint)((int)unaff_s4 * 3) >> 3" (call_expression "(uint)((int)unaff_s4 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)unaff_s4 * 3)" ( (binary_expression "(int)unaff_s4 * 3" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal)) ;) (expression_statement "uVar43 = uVar14 * (int)pcVar42;" (assignment_expression "uVar43 = uVar14 * (int)pcVar42" identifier = (binary_expression "uVar14 * (int)pcVar42" identifier * (cast_expression "(int)pcVar42" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)((ulonglong)uVar75 >> 0x20) == 0) {\n            uVar43 = (uint)((uint)uVar75 < uVar43);\n            uVar75 = CONCAT44(uVar14,uVar43);\n            if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }" if (parenthesized_expression "((int)((ulonglong)uVar75 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar75 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar75 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar75 >> 0x20)" ( (binary_expression "(ulonglong)uVar75 >> 0x20" (cast_expression "(ulonglong)uVar75" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n            uVar43 = (uint)((uint)uVar75 < uVar43);\n            uVar75 = CONCAT44(uVar14,uVar43);\n            if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }" { (expression_statement "uVar43 = (uint)((uint)uVar75 < uVar43);" (assignment_expression "uVar43 = (uint)((uint)uVar75 < uVar43)" identifier = (call_expression "(uint)((uint)uVar75 < uVar43)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar75 < uVar43)" ( (binary_expression "(uint)uVar75 < uVar43" (cast_expression "(uint)uVar75" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) ;) (expression_statement "uVar75 = CONCAT44(uVar14,uVar43);" (assignment_expression "uVar75 = CONCAT44(uVar14,uVar43)" identifier = (call_expression "CONCAT44(uVar14,uVar43)" identifier (argument_list "(uVar14,uVar43)" ( identifier , identifier )))) ;) (if_statement "if (uVar43 != 0) {\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" if (parenthesized_expression "(uVar43 != 0)" ( (binary_expression "uVar43 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar55 = 0x37d;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" { (expression_statement "uVar55 = 0x37d;" (assignment_expression "uVar55 = 0x37d" identifier = number_literal) ;) (expression_statement "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;" (assignment_expression "local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (binary_expression "PTR_s_courses_003a88ec + 0x4a0" identifier + number_literal)) ;) (expression_statement "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ExceptionInfo *)&DAT_000001a9" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) })) (expression_statement "pIVar40 = (ImageInfo *)0x58;" (assignment_expression "pIVar40 = (ImageInfo *)0x58" identifier = (cast_expression "(ImageInfo *)0x58" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1);" (assignment_expression "sVar17 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1)" identifier = (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes + 1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9->scenes + 1)" ( (binary_expression "pIVar9->scenes + 1" (field_expression "pIVar9->scenes" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "pIVar9->scene = sVar17;" (assignment_expression "pIVar9->scene = sVar17" (field_expression "pIVar9->scene" identifier -> field_identifier) = identifier) ;) (if_statement "if (sVar17 == 0) {\n            uVar55 = 0x381;\nLAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n            local_30d8._0_4_ = (ExceptionInfo *)0x190;\n            unaff_s8 = pFVar12;\n            goto LAB_002546ac;\n          }" if (parenthesized_expression "(sVar17 == 0)" ( (binary_expression "sVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar55 = 0x381;\nLAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;\n            local_30d8._0_4_ = (ExceptionInfo *)0x190;\n            unaff_s8 = pFVar12;\n            goto LAB_002546ac;\n          }" { (expression_statement "uVar55 = 0x381;" (assignment_expression "uVar55 = 0x381" identifier = number_literal) ;) (labeled_statement "LAB_00254850:\n            uVar75 = CONCAT44(uVar14,uVar43);" statement_identifier : (expression_statement "uVar75 = CONCAT44(uVar14,uVar43);" (assignment_expression "uVar75 = CONCAT44(uVar14,uVar43)" identifier = (call_expression "CONCAT44(uVar14,uVar43)" identifier (argument_list "(uVar14,uVar43)" ( identifier , identifier )))) ;)) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8;" (assignment_expression "local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x16f8" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (binary_expression "PTR_LAB_003a88e0 + 0x16f8" identifier + number_literal)) ;) (expression_statement "local_30d8._0_4_ = (ExceptionInfo *)0x190;" (assignment_expression "local_30d8._0_4_ = (ExceptionInfo *)0x190" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ExceptionInfo *)0x190" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8 = pFVar12;" (assignment_expression "unaff_s8 = pFVar12" identifier = identifier) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "uVar75 = CONCAT44(uVar14,uVar43);" (assignment_expression "uVar75 = CONCAT44(uVar14,uVar43)" identifier = (call_expression "CONCAT44(uVar14,uVar43)" identifier (argument_list "(uVar14,uVar43)" ( identifier , identifier )))) ;) (if_statement "if (pIVar9->scenes != (char *)0x0) {\n            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);\n            if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }\n            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);\n            pFVar45 = pFVar29;\n            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);\n            pcVar42 = pIVar9->scenes;\n            iVar13 = (int)pcVar42 * uVar14;\n            uVar75 = CONCAT44(iVar13,pFVar29);\n            if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n            uVar75 = CONCAT44(iVar13,pFVar29);\n          }" if (parenthesized_expression "(pIVar9->scenes != (char *)0x0)" ( (binary_expression "pIVar9->scenes != (char *)0x0" (field_expression "pIVar9->scenes" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);\n            if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }\n            pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);\n            pFVar45 = pFVar29;\n            iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);\n            pcVar42 = pIVar9->scenes;\n            iVar13 = (int)pcVar42 * uVar14;\n            uVar75 = CONCAT44(iVar13,pFVar29);\n            if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n            uVar75 = CONCAT44(iVar13,pFVar29);\n          }" { (expression_statement "pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14);" (assignment_expression "pFVar29 = (FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14)" identifier = (cast_expression "(FILE *)(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(pIVar9->scenes,uVar14)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9->scenes,uVar14)" ( (field_expression "pIVar9->scenes" identifier -> field_identifier) , identifier ))))) ;) (if_statement "if (pFVar29 == (FILE *)0x0) {\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }" if (parenthesized_expression "(pFVar29 == (FILE *)0x0)" ( (binary_expression "pFVar29 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar55 = 0x38a;\n              uVar43 = 0;\n              goto LAB_00254850;\n            }" { (expression_statement "uVar55 = 0x38a;" (assignment_expression "uVar55 = 0x38a" identifier = number_literal) ;) (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00254850;" goto statement_identifier ;) })) (expression_statement "pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes);" (assignment_expression "pIVar40 = (ImageInfo *)(uVar14 * (int)pIVar9->scenes)" identifier = (cast_expression "(ImageInfo *)(uVar14 * (int)pIVar9->scenes)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 * (int)pIVar9->scenes)" ( (binary_expression "uVar14 * (int)pIVar9->scenes" identifier * (cast_expression "(int)pIVar9->scenes" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar9->scenes" identifier -> field_identifier))) )))) ;) (expression_statement "pFVar45 = pFVar29;" (assignment_expression "pFVar45 = pFVar29" identifier = identifier) ;) (expression_statement "iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9);" (assignment_expression "iVar11 = (*(code *)PTR_ReadBlob_003a8dac)(pIVar9)" identifier = (call_expression "(*(code *)PTR_ReadBlob_003a8dac)(pIVar9)" (parenthesized_expression "(*(code *)PTR_ReadBlob_003a8dac)" ( (pointer_expression "*(code *)PTR_ReadBlob_003a8dac" * (cast_expression "(code *)PTR_ReadBlob_003a8dac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier )))) ;) (expression_statement "pcVar42 = pIVar9->scenes;" (assignment_expression "pcVar42 = pIVar9->scenes" identifier = (field_expression "pIVar9->scenes" identifier -> field_identifier)) ;) (expression_statement "iVar13 = (int)pcVar42 * uVar14;" (assignment_expression "iVar13 = (int)pcVar42 * uVar14" identifier = (binary_expression "(int)pcVar42 * uVar14" (cast_expression "(int)pcVar42" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) ;) (expression_statement "uVar75 = CONCAT44(iVar13,pFVar29);" (assignment_expression "uVar75 = CONCAT44(iVar13,pFVar29)" identifier = (call_expression "CONCAT44(iVar13,pFVar29)" identifier (argument_list "(iVar13,pFVar29)" ( identifier , identifier )))) ;) (if_statement "if (iVar13 != iVar11) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" if (parenthesized_expression "(iVar13 != iVar11)" ( (binary_expression "iVar13 != iVar11" identifier != identifier) )) (compound_statement "{\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n              uVar55 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;\n              local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" { (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar29)" ( identifier ))) ;) (expression_statement "uVar55 = 0x390;" (assignment_expression "uVar55 = 0x390" identifier = number_literal) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0;" (assignment_expression "local_30d8._4_4_ = PTR_s_courses_003a88ec + 0x4a0" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (binary_expression "PTR_s_courses_003a88ec + 0x4a0" identifier + number_literal)) ;) (expression_statement "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ExceptionInfo *)&DAT_000001a9" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (if_statement "if (unaff_s4 == (FILE *)0x10) {\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }\n            else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }" if (parenthesized_expression "(unaff_s4 == (FILE *)0x10)" ( (binary_expression "unaff_s4 == (FILE *)0x10" identifier == (cast_expression "(FILE *)0x10" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }\n            }" { (if_statement "if (0 < (int)pcVar42) {\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }" if (parenthesized_expression "(0 < (int)pcVar42)" ( (binary_expression "0 < (int)pcVar42" number_literal < (cast_expression "(int)pcVar42" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));\n              }" { (expression_statement "pFVar19 = pFVar29;" (assignment_expression "pFVar19 = pFVar29" identifier = identifier) ;) (expression_statement "pdVar18 = (double *)(pIVar9->scene + 0x28);" (assignment_expression "pdVar18 = (double *)(pIVar9->scene + 0x28)" identifier = (cast_expression "(double *)(pIVar9->scene + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar9->scene + 0x28)" ( (binary_expression "pIVar9->scene + 0x28" (field_expression "pIVar9->scene" identifier -> field_identifier) + number_literal) )))) ;) (do_statement "do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47));" do (compound_statement "{\n                  pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);\n                  *pdVar18 = (double)*(ushort *)&pFVar19->_flags;\n                  pdVar18[1] = (double)(ushort)pFVar19->_flags;\n                  pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);\n                  pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;\n                  pdVar18[2] = (double)(int)pIVar40;\n                  pFVar19 = pFVar38;\n                  pdVar18 = pdVar18 + 0xb;\n                }" { (expression_statement "pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2);" (assignment_expression "pFVar38 = (FILE *)((int)&pFVar19->_IO_read_ptr + 2)" identifier = (cast_expression "(FILE *)((int)&pFVar19->_IO_read_ptr + 2)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFVar19->_IO_read_ptr + 2)" ( (binary_expression "(int)&pFVar19->_IO_read_ptr + 2" (cast_expression "(int)&pFVar19->_IO_read_ptr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFVar19->_IO_read_ptr" & (field_expression "pFVar19->_IO_read_ptr" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "*pdVar18 = (double)*(ushort *)&pFVar19->_flags;" (assignment_expression "*pdVar18 = (double)*(ushort *)&pFVar19->_flags" (pointer_expression "*pdVar18" * identifier) = (cast_expression "(double)*(ushort *)&pFVar19->_flags" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(ushort *)&pFVar19->_flags" * (cast_expression "(ushort *)&pFVar19->_flags" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar19->_flags" & (field_expression "pFVar19->_flags" identifier -> field_identifier)))))) ;) (expression_statement "pdVar18[1] = (double)(ushort)pFVar19->_flags;" (assignment_expression "pdVar18[1] = (double)(ushort)pFVar19->_flags" (subscript_expression "pdVar18[1]" identifier [ number_literal ]) = (cast_expression "(double)(ushort)pFVar19->_flags" ( (type_descriptor "double" primitive_type) ) (cast_expression "(ushort)pFVar19->_flags" ( (type_descriptor "ushort" type_identifier) ) (field_expression "pFVar19->_flags" identifier -> field_identifier)))) ;) (expression_statement "pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8);" (assignment_expression "pFVar45 = (FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8)" identifier = (cast_expression "(FILE *)((uint)*(byte *)&pFVar19->_IO_read_ptr << 8)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*(byte *)&pFVar19->_IO_read_ptr << 8)" ( (binary_expression "(uint)*(byte *)&pFVar19->_IO_read_ptr << 8" (binary_expression "(uint)*(byte *)&pFVar19->_IO_read_ptr" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)&pFVar19->_IO_read_ptr" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar19->_IO_read_ptr" & (field_expression "pFVar19->_IO_read_ptr" identifier -> field_identifier)))) << number_literal) )))) ;) (expression_statement "pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr;" (assignment_expression "pIVar40 = (ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr" identifier = (binary_expression "(ImageInfo *)(uint)*(ushort *)&pFVar19->_IO_read_ptr" (cast_expression "(ImageInfo *)(uint)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)&pFVar19->_IO_read_ptr" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar19->_IO_read_ptr" & (field_expression "pFVar19->_IO_read_ptr" identifier -> field_identifier))))) ;) (expression_statement "pdVar18[2] = (double)(int)pIVar40;" (assignment_expression "pdVar18[2] = (double)(int)pIVar40" (subscript_expression "pdVar18[2]" identifier [ number_literal ]) = (cast_expression "(double)(int)pIVar40" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pIVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pFVar19 = pFVar38;" (assignment_expression "pFVar19 = pFVar38" identifier = identifier) ;) (expression_statement "pdVar18 = pdVar18 + 0xb;" (assignment_expression "pdVar18 = pdVar18 + 0xb" identifier = (binary_expression "pdVar18 + 0xb" identifier + number_literal)) ;) }) while (parenthesized_expression "(pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47))" ( (binary_expression "pFVar38 != (FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47)" identifier != (cast_expression "(FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47)" ( (binary_expression "pFVar29->_shortbuf + (int)pcVar42 * 6 + -0x47" (binary_expression "pFVar29->_shortbuf + (int)pcVar42 * 6" (field_expression "pFVar29->_shortbuf" identifier -> field_identifier) + (binary_expression "(int)pcVar42 * 6" (cast_expression "(int)pcVar42" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) )) ;) })) }) (else_clause "else if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }" else (if_statement "if (unaff_s4 == (FILE *)0x20) {\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }\n            else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }" if (parenthesized_expression "(unaff_s4 == (FILE *)0x20)" ( (binary_expression "unaff_s4 == (FILE *)0x20" identifier == (cast_expression "(FILE *)0x20" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }\n            }" { (if_statement "if (0 < (int)pcVar42) {\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }" if (parenthesized_expression "(0 < (int)pcVar42)" ( (binary_expression "0 < (int)pcVar42" number_literal < (cast_expression "(int)pcVar42" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                dVar73 = *(double *)(puVar4 + 0x1418);\n                dVar72 = *(double *)(puVar5 + -0x5b00);\n                pFVar19 = pFVar29;\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));\n              }" { (expression_statement "dVar73 = *(double *)(puVar4 + 0x1418);" (assignment_expression "dVar73 = *(double *)(puVar4 + 0x1418)" identifier = (pointer_expression "*(double *)(puVar4 + 0x1418)" * (cast_expression "(double *)(puVar4 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x1418)" ( (binary_expression "puVar4 + 0x1418" identifier + number_literal) ))))) ;) (expression_statement "dVar72 = *(double *)(puVar5 + -0x5b00);" (assignment_expression "dVar72 = *(double *)(puVar5 + -0x5b00)" identifier = (pointer_expression "*(double *)(puVar5 + -0x5b00)" * (cast_expression "(double *)(puVar5 + -0x5b00)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x5b00)" ( (binary_expression "puVar5 + -0x5b00" identifier + number_literal) ))))) ;) (expression_statement "pFVar19 = pFVar29;" (assignment_expression "pFVar19 = pFVar29" identifier = identifier) ;) (expression_statement "pdVar18 = (double *)(pIVar9->scene + 0x28);" (assignment_expression "pdVar18 = (double *)(pIVar9->scene + 0x28)" identifier = (cast_expression "(double *)(pIVar9->scene + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar9->scene + 0x28)" ( (binary_expression "pIVar9->scene + 0x28" (field_expression "pIVar9->scene" identifier -> field_identifier) + number_literal) )))) ;) (do_statement "do {\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                } while (&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47));" do (compound_statement "{\n                  pFVar45 = pFVar19;\n                  dVar74 = (double)pFVar45->_flags;\n                  if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  *pdVar18 = (double)(float)(dVar74 / in_f24_25);\n                  dVar74 = (double)(int)pFVar45->_IO_read_ptr;\n                  if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }\n                  pdVar18[1] = (double)(float)(dVar74 / dVar72);\n                  pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;\n                  dVar74 = (double)(int)pIVar40;\n                  if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }\n                  pdVar18[2] = (double)(float)(dVar74 / dVar72);\n                  pFVar19 = (FILE *)&pFVar45->_IO_read_base;\n                  pdVar18 = pdVar18 + 0xb;\n                }" { (expression_statement "pFVar45 = pFVar19;" (assignment_expression "pFVar45 = pFVar19" identifier = identifier) ;) (expression_statement "dVar74 = (double)pFVar45->_flags;" (assignment_expression "dVar74 = (double)pFVar45->_flags" identifier = (cast_expression "(double)pFVar45->_flags" ( (type_descriptor "double" primitive_type) ) (field_expression "pFVar45->_flags" identifier -> field_identifier))) ;) (if_statement "if (pFVar45->_flags < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }" if (parenthesized_expression "(pFVar45->_flags < 0)" ( (binary_expression "pFVar45->_flags < 0" (field_expression "pFVar45->_flags" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n                    dVar74 = dVar74 + dVar73;\n                  }" { (expression_statement "dVar74 = dVar74 + dVar73;" (assignment_expression "dVar74 = dVar74 + dVar73" identifier = (binary_expression "dVar74 + dVar73" identifier + identifier)) ;) })) (expression_statement "*pdVar18 = (double)(float)(dVar74 / in_f24_25);" (assignment_expression "*pdVar18 = (double)(float)(dVar74 / in_f24_25)" (pointer_expression "*pdVar18" * identifier) = (cast_expression "(double)(float)(dVar74 / in_f24_25)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)(dVar74 / in_f24_25)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar74 / in_f24_25)" ( (binary_expression "dVar74 / in_f24_25" identifier / identifier) ))))) ;) (expression_statement "dVar74 = (double)(int)pFVar45->_IO_read_ptr;" (assignment_expression "dVar74 = (double)(int)pFVar45->_IO_read_ptr" identifier = (cast_expression "(double)(int)pFVar45->_IO_read_ptr" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pFVar45->_IO_read_ptr" ( (type_descriptor "int" primitive_type) ) (field_expression "pFVar45->_IO_read_ptr" identifier -> field_identifier)))) ;) (if_statement "if ((int)pFVar45->_IO_read_ptr < 0) {\n                    dVar74 = dVar74 + dVar73;\n                  }" if (parenthesized_expression "((int)pFVar45->_IO_read_ptr < 0)" ( (binary_expression "(int)pFVar45->_IO_read_ptr < 0" (cast_expression "(int)pFVar45->_IO_read_ptr" ( (type_descriptor "int" primitive_type) ) (field_expression "pFVar45->_IO_read_ptr" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n                    dVar74 = dVar74 + dVar73;\n                  }" { (expression_statement "dVar74 = dVar74 + dVar73;" (assignment_expression "dVar74 = dVar74 + dVar73" identifier = (binary_expression "dVar74 + dVar73" identifier + identifier)) ;) })) (expression_statement "pdVar18[1] = (double)(float)(dVar74 / dVar72);" (assignment_expression "pdVar18[1] = (double)(float)(dVar74 / dVar72)" (subscript_expression "pdVar18[1]" identifier [ number_literal ]) = (cast_expression "(double)(float)(dVar74 / dVar72)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)(dVar74 / dVar72)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar74 / dVar72)" ( (binary_expression "dVar74 / dVar72" identifier / identifier) ))))) ;) (expression_statement "pIVar40 = (ImageInfo *)pFVar45->_IO_read_end;" (assignment_expression "pIVar40 = (ImageInfo *)pFVar45->_IO_read_end" identifier = (cast_expression "(ImageInfo *)pFVar45->_IO_read_end" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pFVar45->_IO_read_end" identifier -> field_identifier))) ;) (expression_statement "dVar74 = (double)(int)pIVar40;" (assignment_expression "dVar74 = (double)(int)pIVar40" identifier = (cast_expression "(double)(int)pIVar40" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pIVar40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)pIVar40 < 0) {\n                    dVar74 = dVar74 + in_f22_23;\n                  }" if (parenthesized_expression "((int)pIVar40 < 0)" ( (binary_expression "(int)pIVar40 < 0" (cast_expression "(int)pIVar40" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    dVar74 = dVar74 + in_f22_23;\n                  }" { (expression_statement "dVar74 = dVar74 + in_f22_23;" (assignment_expression "dVar74 = dVar74 + in_f22_23" identifier = (binary_expression "dVar74 + in_f22_23" identifier + identifier)) ;) })) (expression_statement "pdVar18[2] = (double)(float)(dVar74 / dVar72);" (assignment_expression "pdVar18[2] = (double)(float)(dVar74 / dVar72)" (subscript_expression "pdVar18[2]" identifier [ number_literal ]) = (cast_expression "(double)(float)(dVar74 / dVar72)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)(dVar74 / dVar72)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar74 / dVar72)" ( (binary_expression "dVar74 / dVar72" identifier / identifier) ))))) ;) (expression_statement "pFVar19 = (FILE *)&pFVar45->_IO_read_base;" (assignment_expression "pFVar19 = (FILE *)&pFVar45->_IO_read_base" identifier = (cast_expression "(FILE *)&pFVar45->_IO_read_base" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar45->_IO_read_base" & (field_expression "pFVar45->_IO_read_base" identifier -> field_identifier)))) ;) (expression_statement "pdVar18 = pdVar18 + 0xb;" (assignment_expression "pdVar18 = pdVar18 + 0xb" identifier = (binary_expression "pdVar18 + 0xb" identifier + number_literal)) ;) }) while (parenthesized_expression "(&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47))" ( (binary_expression "&pFVar45->_IO_read_base !=\n                         (char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47)" (pointer_expression "&pFVar45->_IO_read_base" & (field_expression "pFVar45->_IO_read_base" identifier -> field_identifier)) != (cast_expression "(char **)(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47)" ( (binary_expression "pFVar29->_shortbuf + (int)pcVar42 * 0xc + -0x47" (binary_expression "pFVar29->_shortbuf + (int)pcVar42 * 0xc" (field_expression "pFVar29->_shortbuf" identifier -> field_identifier) + (binary_expression "(int)pcVar42 * 0xc" (cast_expression "(int)pcVar42" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) )) ;) })) }) (else_clause "else {\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }" else (compound_statement "{\n              if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }\n              pIVar40 = (ImageInfo *)((int)pcVar42 * 2);\n              if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }\n            }" { (if_statement "if (unaff_s4 != (FILE *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }" if (parenthesized_expression "(unaff_s4 != (FILE *)&DAT_00000008)" ( (binary_expression "unaff_s4 != (FILE *)&DAT_00000008" identifier != (cast_expression "(FILE *)&DAT_00000008" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000008" & identifier))) )) (compound_statement "{\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);\n                uVar55 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;\n                local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n                uVar75 = CONCAT44(iVar13,pFVar29);\n                goto LAB_002546ac;\n              }" { (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar29)" ( identifier ))) ;) (expression_statement "uVar55 = 0x398;" (assignment_expression "uVar55 = 0x398" identifier = number_literal) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8;" (assignment_expression "local_30d8._4_4_ = PTR_s_t_to_left_003a88e4 + -0x5aa8" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5aa8" identifier + number_literal)) ;) (expression_statement "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ExceptionInfo *)&DAT_000001a9" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (expression_statement "uVar75 = CONCAT44(iVar13,pFVar29);" (assignment_expression "uVar75 = CONCAT44(iVar13,pFVar29)" identifier = (call_expression "CONCAT44(iVar13,pFVar29)" identifier (argument_list "(iVar13,pFVar29)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "pIVar40 = (ImageInfo *)((int)pcVar42 * 2);" (assignment_expression "pIVar40 = (ImageInfo *)((int)pcVar42 * 2)" identifier = (cast_expression "(ImageInfo *)((int)pcVar42 * 2)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pcVar42 * 2)" ( (binary_expression "(int)pcVar42 * 2" (cast_expression "(int)pcVar42" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (0 < (int)pcVar42) {\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }" if (parenthesized_expression "(0 < (int)pcVar42)" ( (binary_expression "0 < (int)pcVar42" number_literal < (cast_expression "(int)pcVar42" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pdVar18 = (double *)(pIVar9->scene + 0x28);\n                pFVar19 = pFVar29;\n                do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);\n              }" { (expression_statement "pdVar18 = (double *)(pIVar9->scene + 0x28);" (assignment_expression "pdVar18 = (double *)(pIVar9->scene + 0x28)" identifier = (cast_expression "(double *)(pIVar9->scene + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar9->scene + 0x28)" ( (binary_expression "pIVar9->scene + 0x28" (field_expression "pIVar9->scene" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "pFVar19 = pFVar29;" (assignment_expression "pFVar19 = pFVar29" identifier = identifier) ;) (do_statement "do {\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                } while ((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38);" do (compound_statement "{\n                  pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);\n                  *pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);\n                  pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);\n                  pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);\n                  pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);\n                  pdVar18 = pdVar18 + 0xb;\n                  pFVar19 = pFVar38;\n                }" { (expression_statement "pFVar38 = (FILE *)((int)&pFVar19->_flags + 3);" (assignment_expression "pFVar38 = (FILE *)((int)&pFVar19->_flags + 3)" identifier = (cast_expression "(FILE *)((int)&pFVar19->_flags + 3)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFVar19->_flags + 3)" ( (binary_expression "(int)&pFVar19->_flags + 3" (cast_expression "(int)&pFVar19->_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFVar19->_flags" & (field_expression "pFVar19->_flags" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "*pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21);" (assignment_expression "*pdVar18 = (double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21)" (pointer_expression "*pdVar18" * identifier) = (cast_expression "(double)(float)((double)*(byte *)&pFVar19->_flags * in_f20_21)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)((double)*(byte *)&pFVar19->_flags * in_f20_21)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(byte *)&pFVar19->_flags * in_f20_21)" ( (binary_expression "(double)*(byte *)&pFVar19->_flags * in_f20_21" (cast_expression "(double)*(byte *)&pFVar19->_flags" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(byte *)&pFVar19->_flags" * (cast_expression "(byte *)&pFVar19->_flags" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pFVar19->_flags" & (field_expression "pFVar19->_flags" identifier -> field_identifier))))) * identifier) ))))) ;) (expression_statement "pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21);" (assignment_expression "pdVar18[1] = (double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21)" (subscript_expression "pdVar18[1]" identifier [ number_literal ]) = (cast_expression "(double)(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21)" ( (binary_expression "(double)*(byte *)((int)&pFVar19->_flags + 1) *\n                                              in_f20_21" (cast_expression "(double)*(byte *)((int)&pFVar19->_flags + 1)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(byte *)((int)&pFVar19->_flags + 1)" * (cast_expression "(byte *)((int)&pFVar19->_flags + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFVar19->_flags + 1)" ( (binary_expression "(int)&pFVar19->_flags + 1" (cast_expression "(int)&pFVar19->_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFVar19->_flags" & (field_expression "pFVar19->_flags" identifier -> field_identifier))) + number_literal) ))))) * identifier) ))))) ;) (expression_statement "pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2);" (assignment_expression "pIVar40 = (ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2)" identifier = (binary_expression "(ImageInfo *)(uint)*(byte *)((int)&pFVar19->_flags + 2)" (cast_expression "(ImageInfo *)(uint)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)((int)&pFVar19->_flags + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFVar19->_flags + 2)" ( (binary_expression "(int)&pFVar19->_flags + 2" (cast_expression "(int)&pFVar19->_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFVar19->_flags" & (field_expression "pFVar19->_flags" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21);" (assignment_expression "pdVar18[2] = (double)(float)((double)(int)pIVar40 * in_f20_21)" (subscript_expression "pdVar18[2]" identifier [ number_literal ]) = (cast_expression "(double)(float)((double)(int)pIVar40 * in_f20_21)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)((double)(int)pIVar40 * in_f20_21)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)(int)pIVar40 * in_f20_21)" ( (binary_expression "(double)(int)pIVar40 * in_f20_21" (cast_expression "(double)(int)pIVar40" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pIVar40" ( (type_descriptor "int" primitive_type) ) identifier)) * identifier) ))))) ;) (expression_statement "pdVar18 = pdVar18 + 0xb;" (assignment_expression "pdVar18 = pdVar18 + 0xb" identifier = (binary_expression "pdVar18 + 0xb" identifier + number_literal)) ;) (expression_statement "pFVar19 = pFVar38;" (assignment_expression "pFVar19 = pFVar38" identifier = identifier) ;) }) while (parenthesized_expression "((FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38)" ( (binary_expression "(FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47) != pFVar38" (cast_expression "(FILE *)(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47)" ( (binary_expression "pFVar29->_shortbuf + (int)pcVar42 * 3 + -0x47" (binary_expression "pFVar29->_shortbuf + (int)pcVar42 * 3" (field_expression "pFVar29->_shortbuf" identifier -> field_identifier) + (binary_expression "(int)pcVar42 * 3" (cast_expression "(int)pcVar42" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))) != identifier) )) ;) })) }))))) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(pFVar29)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar29)" ( identifier ))) ;) (expression_statement "uVar75 = CONCAT44(iVar13,pFVar29);" (assignment_expression "uVar75 = CONCAT44(iVar13,pFVar29)" identifier = (call_expression "CONCAT44(iVar13,pFVar29)" identifier (argument_list "(iVar13,pFVar29)" ( identifier , identifier )))) ;) })) })) (expression_statement "uVar55 = (undefined4)((ulonglong)uVar75 >> 0x20);" (assignment_expression "uVar55 = (undefined4)((ulonglong)uVar75 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar75 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar75 >> 0x20)" ( (binary_expression "(ulonglong)uVar75 >> 0x20" (cast_expression "(ulonglong)uVar75" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar27 = (undefined4)uVar75;" (assignment_expression "uVar27 = (undefined4)uVar75" identifier = (cast_expression "(undefined4)uVar75" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if (((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) &&\n           ((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }" if (parenthesized_expression "(((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) &&\n           ((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))\n           )" ( (binary_expression "((image_info->ping != MagickFalse) && (image_info->number_scenes != 0)) &&\n           ((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))" (parenthesized_expression "((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))" ( (binary_expression "(image_info->ping != MagickFalse) && (image_info->number_scenes != 0)" (parenthesized_expression "(image_info->ping != MagickFalse)" ( (binary_expression "image_info->ping != MagickFalse" (field_expression "image_info->ping" identifier -> field_identifier) != identifier) )) && (parenthesized_expression "(image_info->number_scenes != 0)" ( (binary_expression "image_info->number_scenes != 0" (field_expression "image_info->number_scenes" identifier -> field_identifier) != number_literal) ))) )) && (parenthesized_expression "((image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c))" ( (binary_expression "(image_info->number_scenes + image_info->scene) - 1 <= *(uint *)(pIVar9->magick + 0x5c)" (binary_expression "(image_info->number_scenes + image_info->scene) - 1" (parenthesized_expression "(image_info->number_scenes + image_info->scene)" ( (binary_expression "image_info->number_scenes + image_info->scene" (field_expression "image_info->number_scenes" identifier -> field_identifier) + (field_expression "image_info->scene" identifier -> field_identifier)) )) - number_literal) <= (pointer_expression "*(uint *)(pIVar9->magick + 0x5c)" * (cast_expression "(uint *)(pIVar9->magick + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar9->magick + 0x5c)" ( (binary_expression "pIVar9->magick + 0x5c" (field_expression "pIVar9->magick" identifier -> field_identifier) + number_literal) ))))) ))) )) (compound_statement "{\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }" { (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(pIVar9);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(pIVar9)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" ( (pointer_expression "*(code *)PTR_CloseBlob_003a9688" * (cast_expression "(code *)PTR_CloseBlob_003a9688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))) ;) (if_statement "if (local_309c != 0) goto LAB_002548a8;" if (parenthesized_expression "(local_309c != 0)" ( (binary_expression "local_309c != 0" identifier != number_literal) )) (goto_statement "goto LAB_002548a8;" goto statement_identifier ;)) (goto_statement "goto LAB_00253dbc;" goto statement_identifier ;) })) (expression_statement "iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);" (assignment_expression "iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(10)" identifier = (call_expression "(*(code *)PTR_AcquireMagickResource_003a981c)(10)" (parenthesized_expression "(*(code *)PTR_AcquireMagickResource_003a981c)" ( (pointer_expression "*(code *)PTR_AcquireMagickResource_003a981c" * (cast_expression "(code *)PTR_AcquireMagickResource_003a981c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10)" ( number_literal )))) ;) (if_statement "if (iVar11 == 0) {\nLAB_002550a8:\n          uVar55 = 0x3db;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284;\n          local_30d8._0_4_ = (ExceptionInfo *)0x1d1;\n          goto LAB_002546ac;\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_002550a8:\n          uVar55 = 0x3db;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284;\n          local_30d8._0_4_ = (ExceptionInfo *)0x1d1;\n          goto LAB_002546ac;\n        }" { (labeled_statement "LAB_002550a8:\n          uVar55 = 0x3db;" statement_identifier : (expression_statement "uVar55 = 0x3db;" (assignment_expression "uVar55 = 0x3db" identifier = number_literal) ;)) (expression_statement "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284;" (assignment_expression "local_30d8._4_4_ = PTR_LAB_003a88e0 + 0x1284" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (binary_expression "PTR_LAB_003a88e0 + 0x1284" identifier + number_literal)) ;) (expression_statement "local_30d8._0_4_ = (ExceptionInfo *)0x1d1;" (assignment_expression "local_30d8._0_4_ = (ExceptionInfo *)0x1d1" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ExceptionInfo *)0x1d1" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);" (assignment_expression "iVar11 = (*(code *)PTR_AcquireMagickResource_003a981c)(4)" identifier = (call_expression "(*(code *)PTR_AcquireMagickResource_003a981c)(4)" (parenthesized_expression "(*(code *)PTR_AcquireMagickResource_003a981c)" ( (pointer_expression "*(code *)PTR_AcquireMagickResource_003a981c" * (cast_expression "(code *)PTR_AcquireMagickResource_003a981c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(4)" ( number_literal )))) ;) (if_statement "if (iVar11 == 0) goto LAB_002550a8;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002550a8;" goto statement_identifier ;)) (expression_statement "pFVar45 = (FILE *)0x1;" (assignment_expression "pFVar45 = (FILE *)0x1" identifier = (cast_expression "(FILE *)0x1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pIVar40 = (ImageInfo *)cache_filename;" (assignment_expression "pIVar40 = (ImageInfo *)cache_filename" identifier = (cast_expression "(ImageInfo *)cache_filename" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_30d8._0_4_ = exception;" (assignment_expression "local_30d8._0_4_ = exception" (field_expression "local_30d8._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "iVar11 = (*(code *)PTR_PersistPixelCache_003a8dc0)\n                           (pIVar9,(ImageInfo *)cache_filename,1,&offset);" (assignment_expression "iVar11 = (*(code *)PTR_PersistPixelCache_003a8dc0)\n                           (pIVar9,(ImageInfo *)cache_filename,1,&offset)" identifier = (call_expression "(*(code *)PTR_PersistPixelCache_003a8dc0)\n                           (pIVar9,(ImageInfo *)cache_filename,1,&offset)" (parenthesized_expression "(*(code *)PTR_PersistPixelCache_003a8dc0)" ( (pointer_expression "*(code *)PTR_PersistPixelCache_003a8dc0" * (cast_expression "(code *)PTR_PersistPixelCache_003a8dc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9,(ImageInfo *)cache_filename,1,&offset)" ( identifier , (cast_expression "(ImageInfo *)cache_filename" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (pointer_expression "&offset" & identifier) )))) ;) (if_statement "if (iVar11 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception);\n          uVar55 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          pIVar10 = (ImageInfo *)exception;\n          goto LAB_002546ac;\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception);\n          uVar55 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;\n          pIVar10 = (ImageInfo *)exception;\n          goto LAB_002546ac;\n        }" { (expression_statement "(*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception);" (call_expression "(*(code *)PTR_SetImageExtent_003a94ac)(pIVar9,pIVar9->size,pIVar9->extract,exception)" (parenthesized_expression "(*(code *)PTR_SetImageExtent_003a94ac)" ( (pointer_expression "*(code *)PTR_SetImageExtent_003a94ac" * (cast_expression "(code *)PTR_SetImageExtent_003a94ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9,pIVar9->size,pIVar9->extract,exception)" ( identifier , (field_expression "pIVar9->size" identifier -> field_identifier) , (field_expression "pIVar9->extract" identifier -> field_identifier) , identifier ))) ;) (expression_statement "uVar55 = 0x3e3;" (assignment_expression "uVar55 = 0x3e3" identifier = number_literal) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450;" (assignment_expression "local_30d8._4_4_ = PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450" identifier + number_literal)) ;) (expression_statement "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd;" (assignment_expression "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001bd" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ExceptionInfo *)&DAT_000001bd" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001bd" & identifier))) ;) (expression_statement "pIVar10 = (ImageInfo *)exception;" (assignment_expression "pIVar10 = (ImageInfo *)exception" identifier = (cast_expression "(ImageInfo *)exception" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "iVar11 = (*(code *)PTR_EOFBlob_003a9748)(pIVar9);" (assignment_expression "iVar11 = (*(code *)PTR_EOFBlob_003a9748)(pIVar9)" identifier = (call_expression "(*(code *)PTR_EOFBlob_003a9748)(pIVar9)" (parenthesized_expression "(*(code *)PTR_EOFBlob_003a9748)" ( (pointer_expression "*(code *)PTR_EOFBlob_003a9748" * (cast_expression "(code *)PTR_EOFBlob_003a9748" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier )))) ;) (if_statement "if (iVar11 != 0) {\n          puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20);\n          local_30cc = pIVar9->magick + 0x130;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n          local_30c8 = pIVar10;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000);\n          (*(code *)PTR_DestroyString_003a9074)(pIVar10);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\nLAB_002548a8:\n          pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);\n          image_info = pIVar10;\n          unaff_s8 = pFVar12;\n          uVar75 = CONCAT44(uVar55,uVar27);\n          goto LAB_002546dc;\n        }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20);\n          local_30cc = pIVar9->magick + 0x130;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c;\n          local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;\n          local_30c8 = pIVar10;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000);\n          (*(code *)PTR_DestroyString_003a9074)(pIVar10);\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\nLAB_002548a8:\n          pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);\n          image_info = pIVar10;\n          unaff_s8 = pFVar12;\n          uVar75 = CONCAT44(uVar55,uVar27);\n          goto LAB_002546dc;\n        }" { (expression_statement "puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar20 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20);" (assignment_expression "pIVar10 = (ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20)" identifier = (cast_expression "(ImageInfo *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar20)" (parenthesized_expression "(*(code *)PTR_GetExceptionMessage_003a93ec)" ( (pointer_expression "*(code *)PTR_GetExceptionMessage_003a93ec" * (cast_expression "(code *)PTR_GetExceptionMessage_003a93ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar20)" ( (pointer_expression "*puVar20" * identifier) ))))) ;) (expression_statement "local_30cc = pIVar9->magick + 0x130;" (assignment_expression "local_30cc = pIVar9->magick + 0x130" identifier = (binary_expression "pIVar9->magick + 0x130" (field_expression "pIVar9->magick" identifier -> field_identifier) + number_literal)) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0xe78;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0xe78" identifier = (binary_expression "PTR_LAB_003a88e0 + 0xe78" identifier + number_literal)) ;) (expression_statement "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "pFVar45 = (FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(FILE *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "pIVar40 = (ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ImageInfo *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c;" (assignment_expression "local_30d8._4_4_ = PTR_s_courses_003a88ec + -0x17c" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (binary_expression "PTR_s_courses_003a88ec + -0x17c" identifier + number_literal)) ;) (expression_statement "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ExceptionInfo *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ExceptionInfo *)&DAT_000001a9" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (expression_statement "local_30c8 = pIVar10;" (assignment_expression "local_30c8 = pIVar10" identifier = identifier) ;) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)(exception,pIVar40,pFVar45,1000)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(exception,pIVar40,pFVar45,1000)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(pIVar10);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(pIVar10)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" ( (pointer_expression "*(code *)PTR_DestroyString_003a9074" * (cast_expression "(code *)PTR_DestroyString_003a9074" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar10)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(pIVar9);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(pIVar9)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" ( (pointer_expression "*(code *)PTR_CloseBlob_003a9688" * (cast_expression "(code *)PTR_CloseBlob_003a9688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))) ;) (labeled_statement "LAB_002548a8:\n          pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);" statement_identifier : (expression_statement "pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9);" (assignment_expression "pIVar15 = (Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9)" identifier = (cast_expression "(Image *)(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetFirstImageInList_003a944c)(pIVar9)" (parenthesized_expression "(*(code *)PTR_GetFirstImageInList_003a944c)" ( (pointer_expression "*(code *)PTR_GetFirstImageInList_003a944c" * (cast_expression "(code *)PTR_GetFirstImageInList_003a944c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;)) (expression_statement "image_info = pIVar10;" (assignment_expression "image_info = pIVar10" identifier = identifier) ;) (expression_statement "unaff_s8 = pFVar12;" (assignment_expression "unaff_s8 = pFVar12" identifier = identifier) ;) (expression_statement "uVar75 = CONCAT44(uVar55,uVar27);" (assignment_expression "uVar75 = CONCAT44(uVar55,uVar27)" identifier = (call_expression "CONCAT44(uVar55,uVar27)" identifier (argument_list "(uVar55,uVar27)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_002546dc;" goto statement_identifier ;) })) (expression_statement "uVar55 = 0xffffffff;" (assignment_expression "uVar55 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar75 = CONCAT44(0xffffffff,uVar27);" (assignment_expression "uVar75 = CONCAT44(0xffffffff,uVar27)" identifier = (call_expression "CONCAT44(0xffffffff,uVar27)" identifier (argument_list "(0xffffffff,uVar27)" ( number_literal , identifier )))) ;) (while_statement "while( true ) {\n          unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n          unaff_s4 = (FILE *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (FILE *)0xffffffff;\n          unaff_s8 = pFVar12;\n          if (bVar1) goto LAB_0025489c;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);\n          unaff_s4 = (FILE *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (FILE *)0xffffffff;\n          unaff_s8 = pFVar12;\n          if (bVar1) goto LAB_0025489c;\n        }" { (expression_statement "unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9);" (assignment_expression "unaff_s8 = (FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" identifier = (cast_expression "(FILE *)(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(pIVar9)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;) (expression_statement "unaff_s4 = (FILE *)((int)unaff_s8 * 2);" (assignment_expression "unaff_s4 = (FILE *)((int)unaff_s8 * 2)" identifier = (cast_expression "(FILE *)((int)unaff_s8 * 2)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s8 * 2)" ( (binary_expression "(int)unaff_s8 * 2" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if ((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0) break;" if (parenthesized_expression "((*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0)" ( (binary_expression "(*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80) != 0" (parenthesized_expression "(*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80)" ( (binary_expression "*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47)) & 0x80" (pointer_expression "*(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47))" * (cast_expression "(ushort *)(unaff_s4->_shortbuf + (pIVar10->compression - 0x47))" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4->_shortbuf + (pIVar10->compression - 0x47))" ( (binary_expression "unaff_s4->_shortbuf + (pIVar10->compression - 0x47)" (field_expression "unaff_s4->_shortbuf" identifier -> field_identifier) + (parenthesized_expression "(pIVar10->compression - 0x47)" ( (binary_expression "pIVar10->compression - 0x47" (field_expression "pIVar10->compression" identifier -> field_identifier) - number_literal) ))) )))) & number_literal) )) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar1 = unaff_s8 == (FILE *)0xffffffff;" (assignment_expression "bVar1 = unaff_s8 == (FILE *)0xffffffff" identifier = (binary_expression "unaff_s8 == (FILE *)0xffffffff" identifier == (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "unaff_s8 = pFVar12;" (assignment_expression "unaff_s8 = pFVar12" identifier = identifier) ;) (if_statement "if (bVar1) goto LAB_0025489c;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_0025489c;" goto statement_identifier ;)) })) (if_statement "if (unaff_s8 == (FILE *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          pFVar12 = unaff_s8;\n          goto LAB_002548a8;\n        }" if (parenthesized_expression "(unaff_s8 == (FILE *)0xffffffff)" ( (binary_expression "unaff_s8 == (FILE *)0xffffffff" identifier == (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);\n          pFVar12 = unaff_s8;\n          goto LAB_002548a8;\n        }" { (labeled_statement "LAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(pIVar9);" statement_identifier : (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(pIVar9);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(pIVar9)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" ( (pointer_expression "*(code *)PTR_CloseBlob_003a9688" * (cast_expression "(code *)PTR_CloseBlob_003a9688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))) ;)) (expression_statement "pFVar12 = unaff_s8;" (assignment_expression "pFVar12 = unaff_s8" identifier = identifier) ;) (goto_statement "goto LAB_002548a8;" goto statement_identifier ;) })) (expression_statement "pIVar40 = pIVar9;" (assignment_expression "pIVar40 = pIVar9" identifier = identifier) ;) (expression_statement "pFVar45 = (FILE *)exception;" (assignment_expression "pFVar45 = (FILE *)exception" identifier = (cast_expression "(FILE *)exception" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)PTR_AcquireNextImage_003a8f90)(image_info);" (call_expression "(*(code *)PTR_AcquireNextImage_003a8f90)(image_info)" (parenthesized_expression "(*(code *)PTR_AcquireNextImage_003a8f90)" ( (pointer_expression "*(code *)PTR_AcquireNextImage_003a8f90" * (cast_expression "(code *)PTR_AcquireNextImage_003a8f90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image_info)" ( identifier ))) ;) (expression_statement "iVar11 = (*(code *)PTR_GetNextImageInList_003a9470)(pIVar9);" (assignment_expression "iVar11 = (*(code *)PTR_GetNextImageInList_003a9470)(pIVar9)" identifier = (call_expression "(*(code *)PTR_GetNextImageInList_003a9470)(pIVar9)" (parenthesized_expression "(*(code *)PTR_GetNextImageInList_003a9470)" ( (pointer_expression "*(code *)PTR_GetNextImageInList_003a9470" * (cast_expression "(code *)PTR_GetNextImageInList_003a9470" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier )))) ;) (if_statement "if (iVar11 == 0) break;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pIVar9 = (ImageInfo *)(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9);" (assignment_expression "pIVar9 = (ImageInfo *)(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9)" identifier = (cast_expression "(ImageInfo *)(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_SyncNextImageInList_003a9408)(pIVar9)" (parenthesized_expression "(*(code *)PTR_SyncNextImageInList_003a9408)" ( (pointer_expression "*(code *)PTR_SyncNextImageInList_003a9408" * (cast_expression "(code *)PTR_SyncNextImageInList_003a9408" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;) (expression_statement "uVar75 = (*(code *)PTR_TellBlob_003a931c)(pIVar9);" (assignment_expression "uVar75 = (*(code *)PTR_TellBlob_003a931c)(pIVar9)" identifier = (call_expression "(*(code *)PTR_TellBlob_003a931c)(pIVar9)" (parenthesized_expression "(*(code *)PTR_TellBlob_003a931c)" ( (pointer_expression "*(code *)PTR_TellBlob_003a931c" * (cast_expression "(code *)PTR_TellBlob_003a931c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier )))) ;) (expression_statement "pFVar45 = (FILE *)((ulonglong)uVar75 >> 0x20);" (assignment_expression "pFVar45 = (FILE *)((ulonglong)uVar75 >> 0x20)" identifier = (cast_expression "(FILE *)((ulonglong)uVar75 >> 0x20)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar75 >> 0x20)" ( (binary_expression "(ulonglong)uVar75 >> 0x20" (cast_expression "(ulonglong)uVar75" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9);" (assignment_expression "local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(pIVar9)" identifier = (call_expression "(*(code *)PTR_GetBlobSize_003a94b8)(pIVar9)" (parenthesized_expression "(*(code *)PTR_GetBlobSize_003a94b8)" ( (pointer_expression "*(code *)PTR_GetBlobSize_003a94b8" * (cast_expression "(code *)PTR_GetBlobSize_003a94b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier )))) ;) (expression_statement "pIVar40 = (ImageInfo *)(PTR_s_courses_003a88ec + -0x168);" (assignment_expression "pIVar40 = (ImageInfo *)(PTR_s_courses_003a88ec + -0x168)" identifier = (cast_expression "(ImageInfo *)(PTR_s_courses_003a88ec + -0x168)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x168)" ( (binary_expression "PTR_s_courses_003a88ec + -0x168" identifier + number_literal) )))) ;) (expression_statement "local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(pIVar9,pIVar40,pFVar45,(int)uVar75);" (assignment_expression "local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(pIVar9,pIVar40,pFVar45,(int)uVar75)" identifier = (call_expression "(*(code *)PTR_SetImageProgress_003a8cb4)(pIVar9,pIVar40,pFVar45,(int)uVar75)" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003a8cb4)" ( (pointer_expression "*(code *)PTR_SetImageProgress_003a8cb4" * (cast_expression "(code *)PTR_SetImageProgress_003a8cb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9,pIVar40,pFVar45,(int)uVar75)" ( identifier , identifier , identifier , (cast_expression "(int)uVar75" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) while (parenthesized_expression "(local_309c != 0)" ( (binary_expression "local_309c != 0" identifier != number_literal) )) ;) (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(pIVar9);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(pIVar9)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" ( (pointer_expression "*(code *)PTR_CloseBlob_003a9688" * (cast_expression "(code *)PTR_CloseBlob_003a9688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))) ;) (expression_statement "pFVar12 = unaff_s8;" (assignment_expression "pFVar12 = unaff_s8" identifier = identifier) ;) (labeled_statement "LAB_00253dbc:\n      pIVar15 = (Image *)(*(code *)PTR_DestroyImageList_003a9510)(pIVar9);" statement_identifier : (expression_statement "pIVar15 = (Image *)(*(code *)PTR_DestroyImageList_003a9510)(pIVar9);" (assignment_expression "pIVar15 = (Image *)(*(code *)PTR_DestroyImageList_003a9510)(pIVar9)" identifier = (cast_expression "(Image *)(*(code *)PTR_DestroyImageList_003a9510)(pIVar9)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_DestroyImageList_003a9510)(pIVar9)" (parenthesized_expression "(*(code *)PTR_DestroyImageList_003a9510)" ( (pointer_expression "*(code *)PTR_DestroyImageList_003a9510" * (cast_expression "(code *)PTR_DestroyImageList_003a9510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar9)" ( identifier ))))) ;)) (expression_statement "image_info = pIVar10;" (assignment_expression "image_info = pIVar10" identifier = identifier) ;) (expression_statement "unaff_s8 = pFVar12;" (assignment_expression "unaff_s8 = pFVar12" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_002546dc:\n  if (iVar8 == *(int *)puVar60) {\n    return pIVar15;\n  }" statement_identifier : (if_statement "if (iVar8 == *(int *)puVar60) {\n    return pIVar15;\n  }" if (parenthesized_expression "(iVar8 == *(int *)puVar60)" ( (binary_expression "iVar8 == *(int *)puVar60" identifier == (pointer_expression "*(int *)puVar60" * (cast_expression "(int *)puVar60" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pIVar15;\n  }" { (return_statement "return pIVar15;" return identifier ;) }))) (expression_statement "pcVar61 = WriteMPCImage;" (assignment_expression "pcVar61 = WriteMPCImage" identifier = identifier) ;) (expression_statement "puVar60 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar60 = PTR___stack_chk_fail_003a9064" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar21 = *(int **)(puVar60 + 0x153c6c);" (assignment_expression "piVar21 = *(int **)(puVar60 + 0x153c6c)" identifier = (pointer_expression "*(int **)(puVar60 + 0x153c6c)" * (cast_expression "(int **)(puVar60 + 0x153c6c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153c6c)" ( (binary_expression "puVar60 + 0x153c6c" identifier + number_literal) ))))) ;) (expression_statement "iStack_3144 = *piVar21;" (assignment_expression "iStack_3144 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "pIStack_3140 = pIVar9;" (assignment_expression "pIStack_3140 = pIVar9" identifier = identifier) ;) (expression_statement "pIStack_313c = image_info;" (assignment_expression "pIStack_313c = image_info" identifier = identifier) ;) (expression_statement "pFStack_3130 = unaff_s4;" (assignment_expression "pFStack_3130 = unaff_s4" identifier = identifier) ;) (expression_statement "pFStack_312c = unaff_s5;" (assignment_expression "pFStack_312c = unaff_s5" identifier = identifier) ;) (expression_statement "pFStack_3128 = unaff_s6;" (assignment_expression "pFStack_3128 = unaff_s6" identifier = identifier) ;) (expression_statement "pFStack_3124 = unaff_s7;" (assignment_expression "pFStack_3124 = unaff_s7" identifier = identifier) ;) (expression_statement "pFStack_3120 = unaff_s8;" (assignment_expression "pFStack_3120 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_311c = pcVar61;" (assignment_expression "pcStack_311c = pcVar61" identifier = identifier) ;) (expression_statement "dStack_3118 = in_f20_21;" (assignment_expression "dStack_3118 = in_f20_21" identifier = identifier) ;) (expression_statement "dStack_3110 = in_f22_23;" (assignment_expression "dStack_3110 = in_f22_23" identifier = identifier) ;) (expression_statement "dStack_3108 = in_f24_25;" (assignment_expression "dStack_3108 = in_f24_25" identifier = identifier) ;) (expression_statement "uStack_3138 = uVar75;" (assignment_expression "uStack_3138 = uVar75" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n    pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xd78,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x483,\n                                  *(int *)(puVar60 + 0x153388) + -0x7274);\n    return pIVar15;\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xd78,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x483,\n                                  *(int *)(puVar60 + 0x153388) + -0x7274);\n    return pIVar15;\n  }" { (expression_statement "pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xd78,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x483,\n                                  *(int *)(puVar60 + 0x153388) + -0x7274);" (assignment_expression "pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xd78,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x483,\n                                  *(int *)(puVar60 + 0x153388) + -0x7274)" identifier = (cast_expression "(Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xd78,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x483,\n                                  *(int *)(puVar60 + 0x153388) + -0x7274)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xd78,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x483,\n                                  *(int *)(puVar60 + 0x153388) + -0x7274)" (parenthesized_expression "(**(code **)(puVar60 + 0x154044))" ( (pointer_expression "**(code **)(puVar60 + 0x154044)" * (pointer_expression "*(code **)(puVar60 + 0x154044)" * (cast_expression "(code **)(puVar60 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x154044)" ( (binary_expression "puVar60 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar60 + 0x15331c) + 0xd78,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x483,\n                                  *(int *)(puVar60 + 0x153388) + -0x7274)" ( (binary_expression "*(int *)(puVar60 + 0x15331c) + 0xd78" (pointer_expression "*(int *)(puVar60 + 0x15331c)" * (cast_expression "(int *)(puVar60 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x15331c)" ( (binary_expression "puVar60 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7274" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return pIVar15;" return identifier ;) })) (expression_statement "pFVar12 = *(FILE **)(puVar60 + 0x153388);" (assignment_expression "pFVar12 = *(FILE **)(puVar60 + 0x153388)" identifier = (pointer_expression "*(FILE **)(puVar60 + 0x153388)" * (cast_expression "(FILE **)(puVar60 + 0x153388)" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar8 + 0x3214) != -0x54535255) {\n    pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xda0,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x484,\n                                  &pFVar12[-0xc1]._IO_save_base);\n    return pIVar15;\n  }" if (parenthesized_expression "(*(int *)(iVar8 + 0x3214) != -0x54535255)" ( (binary_expression "*(int *)(iVar8 + 0x3214) != -0x54535255" (pointer_expression "*(int *)(iVar8 + 0x3214)" * (cast_expression "(int *)(iVar8 + 0x3214)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3214)" ( (binary_expression "iVar8 + 0x3214" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xda0,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x484,\n                                  &pFVar12[-0xc1]._IO_save_base);\n    return pIVar15;\n  }" { (expression_statement "pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xda0,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x484,\n                                  &pFVar12[-0xc1]._IO_save_base);" (assignment_expression "pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xda0,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x484,\n                                  &pFVar12[-0xc1]._IO_save_base)" identifier = (cast_expression "(Image *)(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xda0,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x484,\n                                  &pFVar12[-0xc1]._IO_save_base)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar60 + 0x154044))\n                                 (*(int *)(puVar60 + 0x15331c) + 0xda0,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x484,\n                                  &pFVar12[-0xc1]._IO_save_base)" (parenthesized_expression "(**(code **)(puVar60 + 0x154044))" ( (pointer_expression "**(code **)(puVar60 + 0x154044)" * (pointer_expression "*(code **)(puVar60 + 0x154044)" * (cast_expression "(code **)(puVar60 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x154044)" ( (binary_expression "puVar60 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar60 + 0x15331c) + 0xda0,\n                                  *(int *)(puVar60 + 0x153388) + -0x74dc,0x484,\n                                  &pFVar12[-0xc1]._IO_save_base)" ( (binary_expression "*(int *)(puVar60 + 0x15331c) + 0xda0" (pointer_expression "*(int *)(puVar60 + 0x15331c)" * (cast_expression "(int *)(puVar60 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x15331c)" ( (binary_expression "puVar60 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (pointer_expression "&pFVar12[-0xc1]._IO_save_base" & (field_expression "pFVar12[-0xc1]._IO_save_base" (subscript_expression "pFVar12[-0xc1]" identifier [ number_literal ]) . field_identifier)) ))))) ;) (return_statement "return pIVar15;" return identifier ;) })) (if_statement "if (pIVar40 != (ImageInfo *)0x0) {\n    if (*(int *)((int)&pIVar40[1].background_color.green + 4) != -0x54535255) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x153324) + -0x3784,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x486,\n                                    &pFVar12[-0xc1]._IO_save_base);\n      return pIVar15;\n    }\n    if (pIVar40[1].background_color.depth != 0) {\n      (**(code **)(puVar60 + 0x153c1c))\n                (0x8000,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                 *(int *)(puVar60 + 0x153388) + -0x7284,0x488,*(int *)(puVar60 + 0x153320) + -0x62ac\n                 ,pIVar40->magick + 0x130);\n    }\n    if (pFVar45 == (FILE *)0x0) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x1cac,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x489,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);\n      return pIVar15;\n    }\n    if (pFVar45->_IO_buf_base != (char *)0xabacadab) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x294c,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x48a,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);\n      return pIVar15;\n    }\n    pFVar12 = pFVar45;\n    iVar11 = (**(code **)(puVar60 + 0x153c88))(iVar8,pIVar40,4,pFVar45);\n    if (iVar11 == 0) {\nLAB_0025569c:\n      pIVar15 = (Image *)0x0;\n    }\n    else {\n      iVar54 = *(int *)(puVar60 + 0x15331c);\n      iVar56 = *(int *)(puVar60 + 0x15331c);\n      iVar57 = *(int *)(puVar60 + 0x15331c);\n      (**(code **)(puVar60 + 0x154278))(auStack_4144,pIVar40->magick + 0x130,0xffa);\n      ppcVar53 = &aFStack_5150[0]._IO_read_base;\n      iVar11 = *(int *)(puVar60 + 0x153388);\n      iVar13 = *(int *)(puVar60 + 0x153388);\n      iVar22 = *(int *)(puVar60 + 0x153388);\n      (**(code **)(puVar60 + 0x1539e4))(*(int *)(puVar60 + 0x153328) + -0x50b8,auStack_4144);\n      aFStack_5150[0]._IO_read_ptr = (char *)0x0;\n      aFStack_5150[0]._flags = 0;\n      (**(code **)(puVar60 + 0x153cb4))(pIVar40);\n      dVar74 = *(double *)(iVar54 + 0x1418);\n      iVar23 = *(int *)(puVar60 + 0x153388);\n      dVar73 = *(double *)(iVar56 + 0x1400);\n      iVar36 = *(int *)(puVar60 + 0x153388);\n      dVar72 = *(double *)(iVar57 + 0x1410);\n      iVar24 = *(int *)(puVar60 + 0x153388);\n      pFStack_5188 = (FILE *)0x0;\n      iVar25 = *(int *)(puVar60 + 0x153388);\n      do {\n        (**(code **)(puVar60 + 0x154260))(pIVar40,pIVar40->compression,pFVar45);\n        iVar26 = (**(code **)(puVar60 + 0x153c24))(pIVar40,1);\n        if (pIVar40->compression == B44Compression) {\n          pcVar42 = pIVar40->page;\n          if (pcVar42 == (char *)0x0) {\n            pcVar42 = (char *)0x1;\n          }\n          else {\n            pcVar46 = (char *)0x0;\n            if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }\n            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));\n            if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }\n          }\n          if (pcVar42 < pIVar40->scenes) {\n            (**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);\n          }\n        }\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar11 + -0x7434);\n        uVar55 = (**(code **)(puVar60 + 0x154128))(0);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar13 + -0x741c,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(5,pIVar40->compression);\n        dVar71 = (double)(int)pIVar40->scenes;\n        if ((int)pIVar40->scenes < 0) {\n          dVar71 = dVar71 + dVar74;\n        }\n        uVar27 = (**(code **)(puVar60 + 0x15379c))(0x3a,*(undefined4 *)(pIVar40->magick + 0xac));\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar22 + -0x7990,uVar55,dVar71,uVar27);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar36 + -0x7404);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        dVar71 = (double)(int)pIVar40->page;\n        if ((int)pIVar40->page < 0) {\n          dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar62 = (double)(int)pIVar40->extract;\n        if ((int)pIVar40->extract < 0) {\n          dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar63 = (double)(int)pIVar40->size;\n        if ((int)pIVar40->size < 0) {\n          dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n        }\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar23 + -0x73d0);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x90) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x49);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,\n                     dVar71);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(9,pIVar40->orientation);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar24 + -0x7928,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x44) == 0) {\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (*(int *)(pIVar40->magick + 0x4c) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar55 = (*pcVar61)(0x18);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (pIVar40->temporary != MagickFalse) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (*(int *)(pIVar40->magick + 0x4c) != 0) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (pIVar40->temporary != MagickFalse) {\nLAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);\n            dVar63 = (double)(int)pIVar40->adjoin;\n            if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        if (pIVar40->stream != (StreamHandler)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x41);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = *(double *)(pIVar40->magick + 8);\n        dVar67 = *(double *)(pIVar40->magick + 0x10);\n        if ((dVar71 != 0.0) || (dVar67 != 0.0)) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n          dVar62 = dVar67;\n        }\n        iVar37 = *(int *)(pIVar40->magick + 0x18);\n        iVar39 = *(int *)(pIVar40->magick + 0x1c);\n        iVar47 = *(int *)(pIVar40->magick + 0x20);\n        iVar28 = *(int *)(pIVar40->magick + 0x24);\n        if ((iVar37 == 0) && (iVar39 == 0)) {\n          if ((iVar47 != 0) || (iVar28 != 0)) {\n            uVar55 = SUB84(dVar63,0);\n            dVar63 = (double)CONCAT44(iVar28,uVar55);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar62 = (double)iVar39;\n          if (iVar39 < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar63 = (double)iVar37;\n          if (iVar37 < 0) {\n            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n          }\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28);\nLAB_00255ed4:\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        iVar28 = *(int *)(pIVar40->magick + 0x8c);\n        if ((*(int *)(pIVar40->magick + 0x88) != 0) ||\n           (pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0)) {\n          dVar63 = (double)CONCAT44(iVar28,SUB84(dVar63,0));\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,\n                     *(int *)(pIVar40->magick + 0x88),iVar28);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pcVar61 = *(code **)(puVar60 + 0x153eac);\n        }\n        iVar28 = (*pcVar61)(pIVar40);\n        iVar37 = *(int *)(pIVar40->magick + 0x5c);\n        if (iVar28 == 0) {\n          iVar28 = (**(code **)(puVar60 + 0x1536e8))(pIVar40);\n          if (iVar28 != 0) goto LAB_00255b3c;\n          if (iVar37 != 0) {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x6c);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x60);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          if (*(int *)(pIVar40->magick + 0x68) != 100) {\n            dVar63 = (double)*(int *)(pIVar40->magick + 0x68);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);\n          if (*(int *)(pIVar40->magick + 0x6c) < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar71 = (double)*(int *)(pIVar40->magick + 0x60);\n          if (*(int *)(pIVar40->magick + 0x60) < 0) {\n            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n          }\n          if (iVar37 == 0) {\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);\n            dVar63 = dVar62;\n            dVar62 = dVar71;\n          }\n          else {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x50) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x21);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x58) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x15);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->client_data != (void *)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x23);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = (double)(pIVar40->transparent_color).count;\n        if (dVar71 != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n        }\n        if (*(double *)&pIVar40->verbose != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar62 = *(double *)&pIVar40->options;\n          dVar63 = *(double *)&pIVar40->verbose;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->affirm != MagickFalse) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x36);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->cache == (void *)0x0) {\nLAB_00255c28:\n          pFVar12 = pIVar40->file;\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          if (iVar28 == 0) goto LAB_00255c28;\n          iVar37 = *(int *)(puVar60 + 0x153388);\n          do {\n            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          } while (iVar28 != 0);\n          pFVar12 = pIVar40->file;\n        }\n        if (pFVar12 != (FILE *)0x0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        (**(code **)(puVar60 + 0x1536d0))(pIVar40);\n        pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);\n        if (pFVar29 != (FILE *)0x0) {\n          iVar28 = *(int *)(puVar60 + 0x153388);\nLAB_00255c90:\n          pFVar12 = pFVar29;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pbVar30 = (byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45);\n          if (pbVar30 != (byte *)0x0) {\n            iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);\n            if (iVar37 != 0) {\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n            iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n            if (iVar39 == 0) {\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar25 + -0x770c);\n        if (pIVar40->file != (FILE *)0x0) {\n          if (pIVar40->blob != (void *)0x0) {\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40);\n          }\n          (**(code **)(puVar60 + 0x153a18))(pIVar40,0);\n        }\n        if (pIVar40->cache == (void *)0x0) {\n          if (pIVar40->compression == B44Compression) {\nLAB_002561e8:\n            uVar14 = (uint)(iVar26 * 3) >> 3;\n            puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);\n            if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;\n            pcVar42 = pIVar40->scenes;\n            if (0 < (int)pcVar42) {\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);\n            (**(code **)(puVar60 + 0x1539fc))(puVar32);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          while( true ) {\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n            if (iVar28 == 0) break;\n            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n          if (pIVar40->compression == B44Compression) goto LAB_002561e8;\n        }\n        pFVar12 = aFStack_5150;\n        pIVar15 = (Image *)(*pcVar61)(pIVar40,auStack_4144,0,pFVar12,pFVar45);\n        if (pIVar15 == (Image *)0x0) {\n          pFVar12 = (FILE *)0x605;\n          (**(code **)(puVar60 + 0x15395c))\n                    (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,\n                     pIVar40->magick + 0x130);\n          pIVar9 = pIVar40;\n          if (*(int *)(iVar8 + 0xc) == 0) {\n            pcVar61 = *(code **)(puVar60 + 0x1540c4);\n          }\n          else {\n            do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar26 = (**(code **)(puVar60 + 0x153eac))(pIVar40);\n        if (iVar26 == 0) break;\n        pIVar40 = (ImageInfo *)(**(code **)(puVar60 + 0x153e44))(pIVar40);\n        if (*(code **)(pIVar40->magick + 0x118) != (code *)0x0) {\n          pFVar12 = pFStack_5188;\n          pIVar15 = (Image *)(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150);\n          if (pIVar15 == (Image *)0x0) break;\n        }\n        pFStack_5188 = (FILE *)((int)&pFStack_5188->_flags + 1);\n      } while (*(int *)(iVar8 + 0xc) != 0);\n      pcVar61 = *(code **)(puVar60 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar61)(pIVar40);\n    }\n    if (iStack_3144 == *piVar21) {\n      return pIVar15;\n    }\n    (**(code **)(puVar60 + 0x153aa0))();\n  }" if (parenthesized_expression "(pIVar40 != (ImageInfo *)0x0)" ( (binary_expression "pIVar40 != (ImageInfo *)0x0" identifier != (cast_expression "(ImageInfo *)0x0" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*(int *)((int)&pIVar40[1].background_color.green + 4) != -0x54535255) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x153324) + -0x3784,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x486,\n                                    &pFVar12[-0xc1]._IO_save_base);\n      return pIVar15;\n    }\n    if (pIVar40[1].background_color.depth != 0) {\n      (**(code **)(puVar60 + 0x153c1c))\n                (0x8000,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                 *(int *)(puVar60 + 0x153388) + -0x7284,0x488,*(int *)(puVar60 + 0x153320) + -0x62ac\n                 ,pIVar40->magick + 0x130);\n    }\n    if (pFVar45 == (FILE *)0x0) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x1cac,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x489,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);\n      return pIVar15;\n    }\n    if (pFVar45->_IO_buf_base != (char *)0xabacadab) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x294c,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x48a,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);\n      return pIVar15;\n    }\n    pFVar12 = pFVar45;\n    iVar11 = (**(code **)(puVar60 + 0x153c88))(iVar8,pIVar40,4,pFVar45);\n    if (iVar11 == 0) {\nLAB_0025569c:\n      pIVar15 = (Image *)0x0;\n    }\n    else {\n      iVar54 = *(int *)(puVar60 + 0x15331c);\n      iVar56 = *(int *)(puVar60 + 0x15331c);\n      iVar57 = *(int *)(puVar60 + 0x15331c);\n      (**(code **)(puVar60 + 0x154278))(auStack_4144,pIVar40->magick + 0x130,0xffa);\n      ppcVar53 = &aFStack_5150[0]._IO_read_base;\n      iVar11 = *(int *)(puVar60 + 0x153388);\n      iVar13 = *(int *)(puVar60 + 0x153388);\n      iVar22 = *(int *)(puVar60 + 0x153388);\n      (**(code **)(puVar60 + 0x1539e4))(*(int *)(puVar60 + 0x153328) + -0x50b8,auStack_4144);\n      aFStack_5150[0]._IO_read_ptr = (char *)0x0;\n      aFStack_5150[0]._flags = 0;\n      (**(code **)(puVar60 + 0x153cb4))(pIVar40);\n      dVar74 = *(double *)(iVar54 + 0x1418);\n      iVar23 = *(int *)(puVar60 + 0x153388);\n      dVar73 = *(double *)(iVar56 + 0x1400);\n      iVar36 = *(int *)(puVar60 + 0x153388);\n      dVar72 = *(double *)(iVar57 + 0x1410);\n      iVar24 = *(int *)(puVar60 + 0x153388);\n      pFStack_5188 = (FILE *)0x0;\n      iVar25 = *(int *)(puVar60 + 0x153388);\n      do {\n        (**(code **)(puVar60 + 0x154260))(pIVar40,pIVar40->compression,pFVar45);\n        iVar26 = (**(code **)(puVar60 + 0x153c24))(pIVar40,1);\n        if (pIVar40->compression == B44Compression) {\n          pcVar42 = pIVar40->page;\n          if (pcVar42 == (char *)0x0) {\n            pcVar42 = (char *)0x1;\n          }\n          else {\n            pcVar46 = (char *)0x0;\n            if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }\n            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));\n            if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }\n          }\n          if (pcVar42 < pIVar40->scenes) {\n            (**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);\n          }\n        }\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar11 + -0x7434);\n        uVar55 = (**(code **)(puVar60 + 0x154128))(0);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar13 + -0x741c,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(5,pIVar40->compression);\n        dVar71 = (double)(int)pIVar40->scenes;\n        if ((int)pIVar40->scenes < 0) {\n          dVar71 = dVar71 + dVar74;\n        }\n        uVar27 = (**(code **)(puVar60 + 0x15379c))(0x3a,*(undefined4 *)(pIVar40->magick + 0xac));\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar22 + -0x7990,uVar55,dVar71,uVar27);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar36 + -0x7404);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        dVar71 = (double)(int)pIVar40->page;\n        if ((int)pIVar40->page < 0) {\n          dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar62 = (double)(int)pIVar40->extract;\n        if ((int)pIVar40->extract < 0) {\n          dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar63 = (double)(int)pIVar40->size;\n        if ((int)pIVar40->size < 0) {\n          dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n        }\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar23 + -0x73d0);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x90) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x49);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,\n                     dVar71);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(9,pIVar40->orientation);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar24 + -0x7928,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x44) == 0) {\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (*(int *)(pIVar40->magick + 0x4c) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar55 = (*pcVar61)(0x18);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (pIVar40->temporary != MagickFalse) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (*(int *)(pIVar40->magick + 0x4c) != 0) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (pIVar40->temporary != MagickFalse) {\nLAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);\n            dVar63 = (double)(int)pIVar40->adjoin;\n            if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        if (pIVar40->stream != (StreamHandler)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x41);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = *(double *)(pIVar40->magick + 8);\n        dVar67 = *(double *)(pIVar40->magick + 0x10);\n        if ((dVar71 != 0.0) || (dVar67 != 0.0)) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n          dVar62 = dVar67;\n        }\n        iVar37 = *(int *)(pIVar40->magick + 0x18);\n        iVar39 = *(int *)(pIVar40->magick + 0x1c);\n        iVar47 = *(int *)(pIVar40->magick + 0x20);\n        iVar28 = *(int *)(pIVar40->magick + 0x24);\n        if ((iVar37 == 0) && (iVar39 == 0)) {\n          if ((iVar47 != 0) || (iVar28 != 0)) {\n            uVar55 = SUB84(dVar63,0);\n            dVar63 = (double)CONCAT44(iVar28,uVar55);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar62 = (double)iVar39;\n          if (iVar39 < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar63 = (double)iVar37;\n          if (iVar37 < 0) {\n            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n          }\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28);\nLAB_00255ed4:\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        iVar28 = *(int *)(pIVar40->magick + 0x8c);\n        if ((*(int *)(pIVar40->magick + 0x88) != 0) ||\n           (pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0)) {\n          dVar63 = (double)CONCAT44(iVar28,SUB84(dVar63,0));\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,\n                     *(int *)(pIVar40->magick + 0x88),iVar28);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pcVar61 = *(code **)(puVar60 + 0x153eac);\n        }\n        iVar28 = (*pcVar61)(pIVar40);\n        iVar37 = *(int *)(pIVar40->magick + 0x5c);\n        if (iVar28 == 0) {\n          iVar28 = (**(code **)(puVar60 + 0x1536e8))(pIVar40);\n          if (iVar28 != 0) goto LAB_00255b3c;\n          if (iVar37 != 0) {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x6c);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x60);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          if (*(int *)(pIVar40->magick + 0x68) != 100) {\n            dVar63 = (double)*(int *)(pIVar40->magick + 0x68);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);\n          if (*(int *)(pIVar40->magick + 0x6c) < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar71 = (double)*(int *)(pIVar40->magick + 0x60);\n          if (*(int *)(pIVar40->magick + 0x60) < 0) {\n            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n          }\n          if (iVar37 == 0) {\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);\n            dVar63 = dVar62;\n            dVar62 = dVar71;\n          }\n          else {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x50) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x21);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x58) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x15);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->client_data != (void *)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x23);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = (double)(pIVar40->transparent_color).count;\n        if (dVar71 != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n        }\n        if (*(double *)&pIVar40->verbose != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar62 = *(double *)&pIVar40->options;\n          dVar63 = *(double *)&pIVar40->verbose;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->affirm != MagickFalse) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x36);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->cache == (void *)0x0) {\nLAB_00255c28:\n          pFVar12 = pIVar40->file;\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          if (iVar28 == 0) goto LAB_00255c28;\n          iVar37 = *(int *)(puVar60 + 0x153388);\n          do {\n            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          } while (iVar28 != 0);\n          pFVar12 = pIVar40->file;\n        }\n        if (pFVar12 != (FILE *)0x0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        (**(code **)(puVar60 + 0x1536d0))(pIVar40);\n        pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);\n        if (pFVar29 != (FILE *)0x0) {\n          iVar28 = *(int *)(puVar60 + 0x153388);\nLAB_00255c90:\n          pFVar12 = pFVar29;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pbVar30 = (byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45);\n          if (pbVar30 != (byte *)0x0) {\n            iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);\n            if (iVar37 != 0) {\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n            iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n            if (iVar39 == 0) {\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar25 + -0x770c);\n        if (pIVar40->file != (FILE *)0x0) {\n          if (pIVar40->blob != (void *)0x0) {\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40);\n          }\n          (**(code **)(puVar60 + 0x153a18))(pIVar40,0);\n        }\n        if (pIVar40->cache == (void *)0x0) {\n          if (pIVar40->compression == B44Compression) {\nLAB_002561e8:\n            uVar14 = (uint)(iVar26 * 3) >> 3;\n            puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);\n            if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;\n            pcVar42 = pIVar40->scenes;\n            if (0 < (int)pcVar42) {\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);\n            (**(code **)(puVar60 + 0x1539fc))(puVar32);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          while( true ) {\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n            if (iVar28 == 0) break;\n            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n          if (pIVar40->compression == B44Compression) goto LAB_002561e8;\n        }\n        pFVar12 = aFStack_5150;\n        pIVar15 = (Image *)(*pcVar61)(pIVar40,auStack_4144,0,pFVar12,pFVar45);\n        if (pIVar15 == (Image *)0x0) {\n          pFVar12 = (FILE *)0x605;\n          (**(code **)(puVar60 + 0x15395c))\n                    (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,\n                     pIVar40->magick + 0x130);\n          pIVar9 = pIVar40;\n          if (*(int *)(iVar8 + 0xc) == 0) {\n            pcVar61 = *(code **)(puVar60 + 0x1540c4);\n          }\n          else {\n            do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar26 = (**(code **)(puVar60 + 0x153eac))(pIVar40);\n        if (iVar26 == 0) break;\n        pIVar40 = (ImageInfo *)(**(code **)(puVar60 + 0x153e44))(pIVar40);\n        if (*(code **)(pIVar40->magick + 0x118) != (code *)0x0) {\n          pFVar12 = pFStack_5188;\n          pIVar15 = (Image *)(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150);\n          if (pIVar15 == (Image *)0x0) break;\n        }\n        pFStack_5188 = (FILE *)((int)&pFStack_5188->_flags + 1);\n      } while (*(int *)(iVar8 + 0xc) != 0);\n      pcVar61 = *(code **)(puVar60 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar61)(pIVar40);\n    }\n    if (iStack_3144 == *piVar21) {\n      return pIVar15;\n    }\n    (**(code **)(puVar60 + 0x153aa0))();\n  }" { (if_statement "if (*(int *)((int)&pIVar40[1].background_color.green + 4) != -0x54535255) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x153324) + -0x3784,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x486,\n                                    &pFVar12[-0xc1]._IO_save_base);\n      return pIVar15;\n    }" if (parenthesized_expression "(*(int *)((int)&pIVar40[1].background_color.green + 4) != -0x54535255)" ( (binary_expression "*(int *)((int)&pIVar40[1].background_color.green + 4) != -0x54535255" (pointer_expression "*(int *)((int)&pIVar40[1].background_color.green + 4)" * (cast_expression "(int *)((int)&pIVar40[1].background_color.green + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar40[1].background_color.green + 4)" ( (binary_expression "(int)&pIVar40[1].background_color.green + 4" (cast_expression "(int)&pIVar40[1].background_color.green" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar40[1].background_color.green" & (field_expression "pIVar40[1].background_color.green" (field_expression "pIVar40[1].background_color" (subscript_expression "pIVar40[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) != number_literal) )) (compound_statement "{\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x153324) + -0x3784,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x486,\n                                    &pFVar12[-0xc1]._IO_save_base);\n      return pIVar15;\n    }" { (expression_statement "pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x153324) + -0x3784,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x486,\n                                    &pFVar12[-0xc1]._IO_save_base);" (assignment_expression "pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x153324) + -0x3784,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x486,\n                                    &pFVar12[-0xc1]._IO_save_base)" identifier = (cast_expression "(Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x153324) + -0x3784,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x486,\n                                    &pFVar12[-0xc1]._IO_save_base)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x153324) + -0x3784,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x486,\n                                    &pFVar12[-0xc1]._IO_save_base)" (parenthesized_expression "(**(code **)(puVar60 + 0x154044))" ( (pointer_expression "**(code **)(puVar60 + 0x154044)" * (pointer_expression "*(code **)(puVar60 + 0x154044)" * (cast_expression "(code **)(puVar60 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x154044)" ( (binary_expression "puVar60 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar60 + 0x153324) + -0x3784,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x486,\n                                    &pFVar12[-0xc1]._IO_save_base)" ( (binary_expression "*(int *)(puVar60 + 0x153324) + -0x3784" (pointer_expression "*(int *)(puVar60 + 0x153324)" * (cast_expression "(int *)(puVar60 + 0x153324)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153324)" ( (binary_expression "puVar60 + 0x153324" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (pointer_expression "&pFVar12[-0xc1]._IO_save_base" & (field_expression "pFVar12[-0xc1]._IO_save_base" (subscript_expression "pFVar12[-0xc1]" identifier [ number_literal ]) . field_identifier)) ))))) ;) (return_statement "return pIVar15;" return identifier ;) })) (if_statement "if (pIVar40[1].background_color.depth != 0) {\n      (**(code **)(puVar60 + 0x153c1c))\n                (0x8000,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                 *(int *)(puVar60 + 0x153388) + -0x7284,0x488,*(int *)(puVar60 + 0x153320) + -0x62ac\n                 ,pIVar40->magick + 0x130);\n    }" if (parenthesized_expression "(pIVar40[1].background_color.depth != 0)" ( (binary_expression "pIVar40[1].background_color.depth != 0" (field_expression "pIVar40[1].background_color.depth" (field_expression "pIVar40[1].background_color" (subscript_expression "pIVar40[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) != number_literal) )) (compound_statement "{\n      (**(code **)(puVar60 + 0x153c1c))\n                (0x8000,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                 *(int *)(puVar60 + 0x153388) + -0x7284,0x488,*(int *)(puVar60 + 0x153320) + -0x62ac\n                 ,pIVar40->magick + 0x130);\n    }" { (expression_statement "(**(code **)(puVar60 + 0x153c1c))\n                (0x8000,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                 *(int *)(puVar60 + 0x153388) + -0x7284,0x488,*(int *)(puVar60 + 0x153320) + -0x62ac\n                 ,pIVar40->magick + 0x130);" (call_expression "(**(code **)(puVar60 + 0x153c1c))\n                (0x8000,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                 *(int *)(puVar60 + 0x153388) + -0x7284,0x488,*(int *)(puVar60 + 0x153320) + -0x62ac\n                 ,pIVar40->magick + 0x130)" (parenthesized_expression "(**(code **)(puVar60 + 0x153c1c))" ( (pointer_expression "**(code **)(puVar60 + 0x153c1c)" * (pointer_expression "*(code **)(puVar60 + 0x153c1c)" * (cast_expression "(code **)(puVar60 + 0x153c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153c1c)" ( (binary_expression "puVar60 + 0x153c1c" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                 *(int *)(puVar60 + 0x153388) + -0x7284,0x488,*(int *)(puVar60 + 0x153320) + -0x62ac\n                 ,pIVar40->magick + 0x130)" ( number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7284" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar60 + 0x153320) + -0x62ac" (pointer_expression "*(int *)(puVar60 + 0x153320)" * (cast_expression "(int *)(puVar60 + 0x153320)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153320)" ( (binary_expression "puVar60 + 0x153320" identifier + number_literal) )))) + number_literal) , (binary_expression "pIVar40->magick + 0x130" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) ))) ;) })) (if_statement "if (pFVar45 == (FILE *)0x0) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x1cac,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x489,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);\n      return pIVar15;\n    }" if (parenthesized_expression "(pFVar45 == (FILE *)0x0)" ( (binary_expression "pFVar45 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x1cac,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x489,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);\n      return pIVar15;\n    }" { (expression_statement "pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x1cac,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x489,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);" (assignment_expression "pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x1cac,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x489,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274)" identifier = (cast_expression "(Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x1cac,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x489,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x1cac,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x489,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274)" (parenthesized_expression "(**(code **)(puVar60 + 0x154044))" ( (pointer_expression "**(code **)(puVar60 + 0x154044)" * (pointer_expression "*(code **)(puVar60 + 0x154044)" * (cast_expression "(code **)(puVar60 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x154044)" ( (binary_expression "puVar60 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar60 + 0x15331c) + 0x1cac,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x489,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274)" ( (binary_expression "*(int *)(puVar60 + 0x15331c) + 0x1cac" (pointer_expression "*(int *)(puVar60 + 0x15331c)" * (cast_expression "(int *)(puVar60 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x15331c)" ( (binary_expression "puVar60 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7274" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return pIVar15;" return identifier ;) })) (if_statement "if (pFVar45->_IO_buf_base != (char *)0xabacadab) {\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x294c,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x48a,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);\n      return pIVar15;\n    }" if (parenthesized_expression "(pFVar45->_IO_buf_base != (char *)0xabacadab)" ( (binary_expression "pFVar45->_IO_buf_base != (char *)0xabacadab" (field_expression "pFVar45->_IO_buf_base" identifier -> field_identifier) != (cast_expression "(char *)0xabacadab" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x294c,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x48a,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);\n      return pIVar15;\n    }" { (expression_statement "pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x294c,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x48a,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274);" (assignment_expression "pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x294c,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x48a,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274)" identifier = (cast_expression "(Image *)(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x294c,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x48a,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar60 + 0x154044))\n                                   (*(int *)(puVar60 + 0x15331c) + 0x294c,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x48a,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274)" (parenthesized_expression "(**(code **)(puVar60 + 0x154044))" ( (pointer_expression "**(code **)(puVar60 + 0x154044)" * (pointer_expression "*(code **)(puVar60 + 0x154044)" * (cast_expression "(code **)(puVar60 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x154044)" ( (binary_expression "puVar60 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar60 + 0x15331c) + 0x294c,\n                                    *(int *)(puVar60 + 0x153388) + -0x74dc,0x48a,\n                                    *(int *)(puVar60 + 0x153388) + -0x7274)" ( (binary_expression "*(int *)(puVar60 + 0x15331c) + 0x294c" (pointer_expression "*(int *)(puVar60 + 0x15331c)" * (cast_expression "(int *)(puVar60 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x15331c)" ( (binary_expression "puVar60 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7274" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return pIVar15;" return identifier ;) })) (expression_statement "pFVar12 = pFVar45;" (assignment_expression "pFVar12 = pFVar45" identifier = identifier) ;) (expression_statement "iVar11 = (**(code **)(puVar60 + 0x153c88))(iVar8,pIVar40,4,pFVar45);" (assignment_expression "iVar11 = (**(code **)(puVar60 + 0x153c88))(iVar8,pIVar40,4,pFVar45)" identifier = (call_expression "(**(code **)(puVar60 + 0x153c88))(iVar8,pIVar40,4,pFVar45)" (parenthesized_expression "(**(code **)(puVar60 + 0x153c88))" ( (pointer_expression "**(code **)(puVar60 + 0x153c88)" * (pointer_expression "*(code **)(puVar60 + 0x153c88)" * (cast_expression "(code **)(puVar60 + 0x153c88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153c88)" ( (binary_expression "puVar60 + 0x153c88" identifier + number_literal) ))))) )) (argument_list "(iVar8,pIVar40,4,pFVar45)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar11 == 0) {\nLAB_0025569c:\n      pIVar15 = (Image *)0x0;\n    }\n    else {\n      iVar54 = *(int *)(puVar60 + 0x15331c);\n      iVar56 = *(int *)(puVar60 + 0x15331c);\n      iVar57 = *(int *)(puVar60 + 0x15331c);\n      (**(code **)(puVar60 + 0x154278))(auStack_4144,pIVar40->magick + 0x130,0xffa);\n      ppcVar53 = &aFStack_5150[0]._IO_read_base;\n      iVar11 = *(int *)(puVar60 + 0x153388);\n      iVar13 = *(int *)(puVar60 + 0x153388);\n      iVar22 = *(int *)(puVar60 + 0x153388);\n      (**(code **)(puVar60 + 0x1539e4))(*(int *)(puVar60 + 0x153328) + -0x50b8,auStack_4144);\n      aFStack_5150[0]._IO_read_ptr = (char *)0x0;\n      aFStack_5150[0]._flags = 0;\n      (**(code **)(puVar60 + 0x153cb4))(pIVar40);\n      dVar74 = *(double *)(iVar54 + 0x1418);\n      iVar23 = *(int *)(puVar60 + 0x153388);\n      dVar73 = *(double *)(iVar56 + 0x1400);\n      iVar36 = *(int *)(puVar60 + 0x153388);\n      dVar72 = *(double *)(iVar57 + 0x1410);\n      iVar24 = *(int *)(puVar60 + 0x153388);\n      pFStack_5188 = (FILE *)0x0;\n      iVar25 = *(int *)(puVar60 + 0x153388);\n      do {\n        (**(code **)(puVar60 + 0x154260))(pIVar40,pIVar40->compression,pFVar45);\n        iVar26 = (**(code **)(puVar60 + 0x153c24))(pIVar40,1);\n        if (pIVar40->compression == B44Compression) {\n          pcVar42 = pIVar40->page;\n          if (pcVar42 == (char *)0x0) {\n            pcVar42 = (char *)0x1;\n          }\n          else {\n            pcVar46 = (char *)0x0;\n            if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }\n            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));\n            if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }\n          }\n          if (pcVar42 < pIVar40->scenes) {\n            (**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);\n          }\n        }\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar11 + -0x7434);\n        uVar55 = (**(code **)(puVar60 + 0x154128))(0);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar13 + -0x741c,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(5,pIVar40->compression);\n        dVar71 = (double)(int)pIVar40->scenes;\n        if ((int)pIVar40->scenes < 0) {\n          dVar71 = dVar71 + dVar74;\n        }\n        uVar27 = (**(code **)(puVar60 + 0x15379c))(0x3a,*(undefined4 *)(pIVar40->magick + 0xac));\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar22 + -0x7990,uVar55,dVar71,uVar27);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar36 + -0x7404);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        dVar71 = (double)(int)pIVar40->page;\n        if ((int)pIVar40->page < 0) {\n          dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar62 = (double)(int)pIVar40->extract;\n        if ((int)pIVar40->extract < 0) {\n          dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar63 = (double)(int)pIVar40->size;\n        if ((int)pIVar40->size < 0) {\n          dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n        }\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar23 + -0x73d0);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x90) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x49);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,\n                     dVar71);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(9,pIVar40->orientation);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar24 + -0x7928,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x44) == 0) {\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (*(int *)(pIVar40->magick + 0x4c) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar55 = (*pcVar61)(0x18);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (pIVar40->temporary != MagickFalse) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (*(int *)(pIVar40->magick + 0x4c) != 0) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (pIVar40->temporary != MagickFalse) {\nLAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);\n            dVar63 = (double)(int)pIVar40->adjoin;\n            if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        if (pIVar40->stream != (StreamHandler)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x41);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = *(double *)(pIVar40->magick + 8);\n        dVar67 = *(double *)(pIVar40->magick + 0x10);\n        if ((dVar71 != 0.0) || (dVar67 != 0.0)) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n          dVar62 = dVar67;\n        }\n        iVar37 = *(int *)(pIVar40->magick + 0x18);\n        iVar39 = *(int *)(pIVar40->magick + 0x1c);\n        iVar47 = *(int *)(pIVar40->magick + 0x20);\n        iVar28 = *(int *)(pIVar40->magick + 0x24);\n        if ((iVar37 == 0) && (iVar39 == 0)) {\n          if ((iVar47 != 0) || (iVar28 != 0)) {\n            uVar55 = SUB84(dVar63,0);\n            dVar63 = (double)CONCAT44(iVar28,uVar55);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar62 = (double)iVar39;\n          if (iVar39 < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar63 = (double)iVar37;\n          if (iVar37 < 0) {\n            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n          }\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28);\nLAB_00255ed4:\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        iVar28 = *(int *)(pIVar40->magick + 0x8c);\n        if ((*(int *)(pIVar40->magick + 0x88) != 0) ||\n           (pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0)) {\n          dVar63 = (double)CONCAT44(iVar28,SUB84(dVar63,0));\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,\n                     *(int *)(pIVar40->magick + 0x88),iVar28);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pcVar61 = *(code **)(puVar60 + 0x153eac);\n        }\n        iVar28 = (*pcVar61)(pIVar40);\n        iVar37 = *(int *)(pIVar40->magick + 0x5c);\n        if (iVar28 == 0) {\n          iVar28 = (**(code **)(puVar60 + 0x1536e8))(pIVar40);\n          if (iVar28 != 0) goto LAB_00255b3c;\n          if (iVar37 != 0) {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x6c);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x60);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          if (*(int *)(pIVar40->magick + 0x68) != 100) {\n            dVar63 = (double)*(int *)(pIVar40->magick + 0x68);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);\n          if (*(int *)(pIVar40->magick + 0x6c) < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar71 = (double)*(int *)(pIVar40->magick + 0x60);\n          if (*(int *)(pIVar40->magick + 0x60) < 0) {\n            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n          }\n          if (iVar37 == 0) {\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);\n            dVar63 = dVar62;\n            dVar62 = dVar71;\n          }\n          else {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x50) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x21);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x58) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x15);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->client_data != (void *)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x23);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = (double)(pIVar40->transparent_color).count;\n        if (dVar71 != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n        }\n        if (*(double *)&pIVar40->verbose != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar62 = *(double *)&pIVar40->options;\n          dVar63 = *(double *)&pIVar40->verbose;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->affirm != MagickFalse) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x36);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->cache == (void *)0x0) {\nLAB_00255c28:\n          pFVar12 = pIVar40->file;\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          if (iVar28 == 0) goto LAB_00255c28;\n          iVar37 = *(int *)(puVar60 + 0x153388);\n          do {\n            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          } while (iVar28 != 0);\n          pFVar12 = pIVar40->file;\n        }\n        if (pFVar12 != (FILE *)0x0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        (**(code **)(puVar60 + 0x1536d0))(pIVar40);\n        pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);\n        if (pFVar29 != (FILE *)0x0) {\n          iVar28 = *(int *)(puVar60 + 0x153388);\nLAB_00255c90:\n          pFVar12 = pFVar29;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pbVar30 = (byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45);\n          if (pbVar30 != (byte *)0x0) {\n            iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);\n            if (iVar37 != 0) {\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n            iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n            if (iVar39 == 0) {\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar25 + -0x770c);\n        if (pIVar40->file != (FILE *)0x0) {\n          if (pIVar40->blob != (void *)0x0) {\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40);\n          }\n          (**(code **)(puVar60 + 0x153a18))(pIVar40,0);\n        }\n        if (pIVar40->cache == (void *)0x0) {\n          if (pIVar40->compression == B44Compression) {\nLAB_002561e8:\n            uVar14 = (uint)(iVar26 * 3) >> 3;\n            puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);\n            if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;\n            pcVar42 = pIVar40->scenes;\n            if (0 < (int)pcVar42) {\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);\n            (**(code **)(puVar60 + 0x1539fc))(puVar32);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          while( true ) {\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n            if (iVar28 == 0) break;\n            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n          if (pIVar40->compression == B44Compression) goto LAB_002561e8;\n        }\n        pFVar12 = aFStack_5150;\n        pIVar15 = (Image *)(*pcVar61)(pIVar40,auStack_4144,0,pFVar12,pFVar45);\n        if (pIVar15 == (Image *)0x0) {\n          pFVar12 = (FILE *)0x605;\n          (**(code **)(puVar60 + 0x15395c))\n                    (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,\n                     pIVar40->magick + 0x130);\n          pIVar9 = pIVar40;\n          if (*(int *)(iVar8 + 0xc) == 0) {\n            pcVar61 = *(code **)(puVar60 + 0x1540c4);\n          }\n          else {\n            do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar26 = (**(code **)(puVar60 + 0x153eac))(pIVar40);\n        if (iVar26 == 0) break;\n        pIVar40 = (ImageInfo *)(**(code **)(puVar60 + 0x153e44))(pIVar40);\n        if (*(code **)(pIVar40->magick + 0x118) != (code *)0x0) {\n          pFVar12 = pFStack_5188;\n          pIVar15 = (Image *)(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150);\n          if (pIVar15 == (Image *)0x0) break;\n        }\n        pFStack_5188 = (FILE *)((int)&pFStack_5188->_flags + 1);\n      } while (*(int *)(iVar8 + 0xc) != 0);\n      pcVar61 = *(code **)(puVar60 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar61)(pIVar40);\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0025569c:\n      pIVar15 = (Image *)0x0;\n    }" { (labeled_statement "LAB_0025569c:\n      pIVar15 = (Image *)0x0;" statement_identifier : (expression_statement "pIVar15 = (Image *)0x0;" (assignment_expression "pIVar15 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n      iVar54 = *(int *)(puVar60 + 0x15331c);\n      iVar56 = *(int *)(puVar60 + 0x15331c);\n      iVar57 = *(int *)(puVar60 + 0x15331c);\n      (**(code **)(puVar60 + 0x154278))(auStack_4144,pIVar40->magick + 0x130,0xffa);\n      ppcVar53 = &aFStack_5150[0]._IO_read_base;\n      iVar11 = *(int *)(puVar60 + 0x153388);\n      iVar13 = *(int *)(puVar60 + 0x153388);\n      iVar22 = *(int *)(puVar60 + 0x153388);\n      (**(code **)(puVar60 + 0x1539e4))(*(int *)(puVar60 + 0x153328) + -0x50b8,auStack_4144);\n      aFStack_5150[0]._IO_read_ptr = (char *)0x0;\n      aFStack_5150[0]._flags = 0;\n      (**(code **)(puVar60 + 0x153cb4))(pIVar40);\n      dVar74 = *(double *)(iVar54 + 0x1418);\n      iVar23 = *(int *)(puVar60 + 0x153388);\n      dVar73 = *(double *)(iVar56 + 0x1400);\n      iVar36 = *(int *)(puVar60 + 0x153388);\n      dVar72 = *(double *)(iVar57 + 0x1410);\n      iVar24 = *(int *)(puVar60 + 0x153388);\n      pFStack_5188 = (FILE *)0x0;\n      iVar25 = *(int *)(puVar60 + 0x153388);\n      do {\n        (**(code **)(puVar60 + 0x154260))(pIVar40,pIVar40->compression,pFVar45);\n        iVar26 = (**(code **)(puVar60 + 0x153c24))(pIVar40,1);\n        if (pIVar40->compression == B44Compression) {\n          pcVar42 = pIVar40->page;\n          if (pcVar42 == (char *)0x0) {\n            pcVar42 = (char *)0x1;\n          }\n          else {\n            pcVar46 = (char *)0x0;\n            if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }\n            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));\n            if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }\n          }\n          if (pcVar42 < pIVar40->scenes) {\n            (**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);\n          }\n        }\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar11 + -0x7434);\n        uVar55 = (**(code **)(puVar60 + 0x154128))(0);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar13 + -0x741c,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(5,pIVar40->compression);\n        dVar71 = (double)(int)pIVar40->scenes;\n        if ((int)pIVar40->scenes < 0) {\n          dVar71 = dVar71 + dVar74;\n        }\n        uVar27 = (**(code **)(puVar60 + 0x15379c))(0x3a,*(undefined4 *)(pIVar40->magick + 0xac));\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar22 + -0x7990,uVar55,dVar71,uVar27);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar36 + -0x7404);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        dVar71 = (double)(int)pIVar40->page;\n        if ((int)pIVar40->page < 0) {\n          dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar62 = (double)(int)pIVar40->extract;\n        if ((int)pIVar40->extract < 0) {\n          dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar63 = (double)(int)pIVar40->size;\n        if ((int)pIVar40->size < 0) {\n          dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n        }\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar23 + -0x73d0);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x90) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x49);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,\n                     dVar71);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(9,pIVar40->orientation);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar24 + -0x7928,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x44) == 0) {\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (*(int *)(pIVar40->magick + 0x4c) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar55 = (*pcVar61)(0x18);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (pIVar40->temporary != MagickFalse) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (*(int *)(pIVar40->magick + 0x4c) != 0) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (pIVar40->temporary != MagickFalse) {\nLAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);\n            dVar63 = (double)(int)pIVar40->adjoin;\n            if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        if (pIVar40->stream != (StreamHandler)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x41);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = *(double *)(pIVar40->magick + 8);\n        dVar67 = *(double *)(pIVar40->magick + 0x10);\n        if ((dVar71 != 0.0) || (dVar67 != 0.0)) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n          dVar62 = dVar67;\n        }\n        iVar37 = *(int *)(pIVar40->magick + 0x18);\n        iVar39 = *(int *)(pIVar40->magick + 0x1c);\n        iVar47 = *(int *)(pIVar40->magick + 0x20);\n        iVar28 = *(int *)(pIVar40->magick + 0x24);\n        if ((iVar37 == 0) && (iVar39 == 0)) {\n          if ((iVar47 != 0) || (iVar28 != 0)) {\n            uVar55 = SUB84(dVar63,0);\n            dVar63 = (double)CONCAT44(iVar28,uVar55);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar62 = (double)iVar39;\n          if (iVar39 < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar63 = (double)iVar37;\n          if (iVar37 < 0) {\n            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n          }\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28);\nLAB_00255ed4:\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        iVar28 = *(int *)(pIVar40->magick + 0x8c);\n        if ((*(int *)(pIVar40->magick + 0x88) != 0) ||\n           (pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0)) {\n          dVar63 = (double)CONCAT44(iVar28,SUB84(dVar63,0));\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,\n                     *(int *)(pIVar40->magick + 0x88),iVar28);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pcVar61 = *(code **)(puVar60 + 0x153eac);\n        }\n        iVar28 = (*pcVar61)(pIVar40);\n        iVar37 = *(int *)(pIVar40->magick + 0x5c);\n        if (iVar28 == 0) {\n          iVar28 = (**(code **)(puVar60 + 0x1536e8))(pIVar40);\n          if (iVar28 != 0) goto LAB_00255b3c;\n          if (iVar37 != 0) {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x6c);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x60);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          if (*(int *)(pIVar40->magick + 0x68) != 100) {\n            dVar63 = (double)*(int *)(pIVar40->magick + 0x68);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);\n          if (*(int *)(pIVar40->magick + 0x6c) < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar71 = (double)*(int *)(pIVar40->magick + 0x60);\n          if (*(int *)(pIVar40->magick + 0x60) < 0) {\n            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n          }\n          if (iVar37 == 0) {\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);\n            dVar63 = dVar62;\n            dVar62 = dVar71;\n          }\n          else {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x50) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x21);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x58) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x15);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->client_data != (void *)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x23);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = (double)(pIVar40->transparent_color).count;\n        if (dVar71 != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n        }\n        if (*(double *)&pIVar40->verbose != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar62 = *(double *)&pIVar40->options;\n          dVar63 = *(double *)&pIVar40->verbose;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->affirm != MagickFalse) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x36);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->cache == (void *)0x0) {\nLAB_00255c28:\n          pFVar12 = pIVar40->file;\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          if (iVar28 == 0) goto LAB_00255c28;\n          iVar37 = *(int *)(puVar60 + 0x153388);\n          do {\n            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          } while (iVar28 != 0);\n          pFVar12 = pIVar40->file;\n        }\n        if (pFVar12 != (FILE *)0x0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        (**(code **)(puVar60 + 0x1536d0))(pIVar40);\n        pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);\n        if (pFVar29 != (FILE *)0x0) {\n          iVar28 = *(int *)(puVar60 + 0x153388);\nLAB_00255c90:\n          pFVar12 = pFVar29;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pbVar30 = (byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45);\n          if (pbVar30 != (byte *)0x0) {\n            iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);\n            if (iVar37 != 0) {\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n            iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n            if (iVar39 == 0) {\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar25 + -0x770c);\n        if (pIVar40->file != (FILE *)0x0) {\n          if (pIVar40->blob != (void *)0x0) {\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40);\n          }\n          (**(code **)(puVar60 + 0x153a18))(pIVar40,0);\n        }\n        if (pIVar40->cache == (void *)0x0) {\n          if (pIVar40->compression == B44Compression) {\nLAB_002561e8:\n            uVar14 = (uint)(iVar26 * 3) >> 3;\n            puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);\n            if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;\n            pcVar42 = pIVar40->scenes;\n            if (0 < (int)pcVar42) {\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);\n            (**(code **)(puVar60 + 0x1539fc))(puVar32);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          while( true ) {\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n            if (iVar28 == 0) break;\n            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n          if (pIVar40->compression == B44Compression) goto LAB_002561e8;\n        }\n        pFVar12 = aFStack_5150;\n        pIVar15 = (Image *)(*pcVar61)(pIVar40,auStack_4144,0,pFVar12,pFVar45);\n        if (pIVar15 == (Image *)0x0) {\n          pFVar12 = (FILE *)0x605;\n          (**(code **)(puVar60 + 0x15395c))\n                    (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,\n                     pIVar40->magick + 0x130);\n          pIVar9 = pIVar40;\n          if (*(int *)(iVar8 + 0xc) == 0) {\n            pcVar61 = *(code **)(puVar60 + 0x1540c4);\n          }\n          else {\n            do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar26 = (**(code **)(puVar60 + 0x153eac))(pIVar40);\n        if (iVar26 == 0) break;\n        pIVar40 = (ImageInfo *)(**(code **)(puVar60 + 0x153e44))(pIVar40);\n        if (*(code **)(pIVar40->magick + 0x118) != (code *)0x0) {\n          pFVar12 = pFStack_5188;\n          pIVar15 = (Image *)(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150);\n          if (pIVar15 == (Image *)0x0) break;\n        }\n        pFStack_5188 = (FILE *)((int)&pFStack_5188->_flags + 1);\n      } while (*(int *)(iVar8 + 0xc) != 0);\n      pcVar61 = *(code **)(puVar60 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar61)(pIVar40);\n    }" else (compound_statement "{\n      iVar54 = *(int *)(puVar60 + 0x15331c);\n      iVar56 = *(int *)(puVar60 + 0x15331c);\n      iVar57 = *(int *)(puVar60 + 0x15331c);\n      (**(code **)(puVar60 + 0x154278))(auStack_4144,pIVar40->magick + 0x130,0xffa);\n      ppcVar53 = &aFStack_5150[0]._IO_read_base;\n      iVar11 = *(int *)(puVar60 + 0x153388);\n      iVar13 = *(int *)(puVar60 + 0x153388);\n      iVar22 = *(int *)(puVar60 + 0x153388);\n      (**(code **)(puVar60 + 0x1539e4))(*(int *)(puVar60 + 0x153328) + -0x50b8,auStack_4144);\n      aFStack_5150[0]._IO_read_ptr = (char *)0x0;\n      aFStack_5150[0]._flags = 0;\n      (**(code **)(puVar60 + 0x153cb4))(pIVar40);\n      dVar74 = *(double *)(iVar54 + 0x1418);\n      iVar23 = *(int *)(puVar60 + 0x153388);\n      dVar73 = *(double *)(iVar56 + 0x1400);\n      iVar36 = *(int *)(puVar60 + 0x153388);\n      dVar72 = *(double *)(iVar57 + 0x1410);\n      iVar24 = *(int *)(puVar60 + 0x153388);\n      pFStack_5188 = (FILE *)0x0;\n      iVar25 = *(int *)(puVar60 + 0x153388);\n      do {\n        (**(code **)(puVar60 + 0x154260))(pIVar40,pIVar40->compression,pFVar45);\n        iVar26 = (**(code **)(puVar60 + 0x153c24))(pIVar40,1);\n        if (pIVar40->compression == B44Compression) {\n          pcVar42 = pIVar40->page;\n          if (pcVar42 == (char *)0x0) {\n            pcVar42 = (char *)0x1;\n          }\n          else {\n            pcVar46 = (char *)0x0;\n            if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }\n            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));\n            if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }\n          }\n          if (pcVar42 < pIVar40->scenes) {\n            (**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);\n          }\n        }\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar11 + -0x7434);\n        uVar55 = (**(code **)(puVar60 + 0x154128))(0);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar13 + -0x741c,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(5,pIVar40->compression);\n        dVar71 = (double)(int)pIVar40->scenes;\n        if ((int)pIVar40->scenes < 0) {\n          dVar71 = dVar71 + dVar74;\n        }\n        uVar27 = (**(code **)(puVar60 + 0x15379c))(0x3a,*(undefined4 *)(pIVar40->magick + 0xac));\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar22 + -0x7990,uVar55,dVar71,uVar27);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar36 + -0x7404);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        dVar71 = (double)(int)pIVar40->page;\n        if ((int)pIVar40->page < 0) {\n          dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar62 = (double)(int)pIVar40->extract;\n        if ((int)pIVar40->extract < 0) {\n          dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar63 = (double)(int)pIVar40->size;\n        if ((int)pIVar40->size < 0) {\n          dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n        }\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar23 + -0x73d0);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x90) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x49);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,\n                     dVar71);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(9,pIVar40->orientation);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar24 + -0x7928,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x44) == 0) {\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (*(int *)(pIVar40->magick + 0x4c) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar55 = (*pcVar61)(0x18);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (pIVar40->temporary != MagickFalse) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (*(int *)(pIVar40->magick + 0x4c) != 0) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (pIVar40->temporary != MagickFalse) {\nLAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);\n            dVar63 = (double)(int)pIVar40->adjoin;\n            if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        if (pIVar40->stream != (StreamHandler)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x41);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = *(double *)(pIVar40->magick + 8);\n        dVar67 = *(double *)(pIVar40->magick + 0x10);\n        if ((dVar71 != 0.0) || (dVar67 != 0.0)) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n          dVar62 = dVar67;\n        }\n        iVar37 = *(int *)(pIVar40->magick + 0x18);\n        iVar39 = *(int *)(pIVar40->magick + 0x1c);\n        iVar47 = *(int *)(pIVar40->magick + 0x20);\n        iVar28 = *(int *)(pIVar40->magick + 0x24);\n        if ((iVar37 == 0) && (iVar39 == 0)) {\n          if ((iVar47 != 0) || (iVar28 != 0)) {\n            uVar55 = SUB84(dVar63,0);\n            dVar63 = (double)CONCAT44(iVar28,uVar55);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar62 = (double)iVar39;\n          if (iVar39 < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar63 = (double)iVar37;\n          if (iVar37 < 0) {\n            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n          }\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28);\nLAB_00255ed4:\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        iVar28 = *(int *)(pIVar40->magick + 0x8c);\n        if ((*(int *)(pIVar40->magick + 0x88) != 0) ||\n           (pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0)) {\n          dVar63 = (double)CONCAT44(iVar28,SUB84(dVar63,0));\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,\n                     *(int *)(pIVar40->magick + 0x88),iVar28);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pcVar61 = *(code **)(puVar60 + 0x153eac);\n        }\n        iVar28 = (*pcVar61)(pIVar40);\n        iVar37 = *(int *)(pIVar40->magick + 0x5c);\n        if (iVar28 == 0) {\n          iVar28 = (**(code **)(puVar60 + 0x1536e8))(pIVar40);\n          if (iVar28 != 0) goto LAB_00255b3c;\n          if (iVar37 != 0) {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x6c);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x60);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          if (*(int *)(pIVar40->magick + 0x68) != 100) {\n            dVar63 = (double)*(int *)(pIVar40->magick + 0x68);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);\n          if (*(int *)(pIVar40->magick + 0x6c) < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar71 = (double)*(int *)(pIVar40->magick + 0x60);\n          if (*(int *)(pIVar40->magick + 0x60) < 0) {\n            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n          }\n          if (iVar37 == 0) {\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);\n            dVar63 = dVar62;\n            dVar62 = dVar71;\n          }\n          else {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x50) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x21);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x58) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x15);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->client_data != (void *)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x23);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = (double)(pIVar40->transparent_color).count;\n        if (dVar71 != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n        }\n        if (*(double *)&pIVar40->verbose != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar62 = *(double *)&pIVar40->options;\n          dVar63 = *(double *)&pIVar40->verbose;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->affirm != MagickFalse) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x36);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->cache == (void *)0x0) {\nLAB_00255c28:\n          pFVar12 = pIVar40->file;\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          if (iVar28 == 0) goto LAB_00255c28;\n          iVar37 = *(int *)(puVar60 + 0x153388);\n          do {\n            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          } while (iVar28 != 0);\n          pFVar12 = pIVar40->file;\n        }\n        if (pFVar12 != (FILE *)0x0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        (**(code **)(puVar60 + 0x1536d0))(pIVar40);\n        pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);\n        if (pFVar29 != (FILE *)0x0) {\n          iVar28 = *(int *)(puVar60 + 0x153388);\nLAB_00255c90:\n          pFVar12 = pFVar29;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pbVar30 = (byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45);\n          if (pbVar30 != (byte *)0x0) {\n            iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);\n            if (iVar37 != 0) {\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n            iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n            if (iVar39 == 0) {\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar25 + -0x770c);\n        if (pIVar40->file != (FILE *)0x0) {\n          if (pIVar40->blob != (void *)0x0) {\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40);\n          }\n          (**(code **)(puVar60 + 0x153a18))(pIVar40,0);\n        }\n        if (pIVar40->cache == (void *)0x0) {\n          if (pIVar40->compression == B44Compression) {\nLAB_002561e8:\n            uVar14 = (uint)(iVar26 * 3) >> 3;\n            puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);\n            if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;\n            pcVar42 = pIVar40->scenes;\n            if (0 < (int)pcVar42) {\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);\n            (**(code **)(puVar60 + 0x1539fc))(puVar32);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          while( true ) {\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n            if (iVar28 == 0) break;\n            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n          if (pIVar40->compression == B44Compression) goto LAB_002561e8;\n        }\n        pFVar12 = aFStack_5150;\n        pIVar15 = (Image *)(*pcVar61)(pIVar40,auStack_4144,0,pFVar12,pFVar45);\n        if (pIVar15 == (Image *)0x0) {\n          pFVar12 = (FILE *)0x605;\n          (**(code **)(puVar60 + 0x15395c))\n                    (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,\n                     pIVar40->magick + 0x130);\n          pIVar9 = pIVar40;\n          if (*(int *)(iVar8 + 0xc) == 0) {\n            pcVar61 = *(code **)(puVar60 + 0x1540c4);\n          }\n          else {\n            do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar26 = (**(code **)(puVar60 + 0x153eac))(pIVar40);\n        if (iVar26 == 0) break;\n        pIVar40 = (ImageInfo *)(**(code **)(puVar60 + 0x153e44))(pIVar40);\n        if (*(code **)(pIVar40->magick + 0x118) != (code *)0x0) {\n          pFVar12 = pFStack_5188;\n          pIVar15 = (Image *)(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150);\n          if (pIVar15 == (Image *)0x0) break;\n        }\n        pFStack_5188 = (FILE *)((int)&pFStack_5188->_flags + 1);\n      } while (*(int *)(iVar8 + 0xc) != 0);\n      pcVar61 = *(code **)(puVar60 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar61)(pIVar40);\n    }" { (expression_statement "iVar54 = *(int *)(puVar60 + 0x15331c);" (assignment_expression "iVar54 = *(int *)(puVar60 + 0x15331c)" identifier = (pointer_expression "*(int *)(puVar60 + 0x15331c)" * (cast_expression "(int *)(puVar60 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x15331c)" ( (binary_expression "puVar60 + 0x15331c" identifier + number_literal) ))))) ;) (expression_statement "iVar56 = *(int *)(puVar60 + 0x15331c);" (assignment_expression "iVar56 = *(int *)(puVar60 + 0x15331c)" identifier = (pointer_expression "*(int *)(puVar60 + 0x15331c)" * (cast_expression "(int *)(puVar60 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x15331c)" ( (binary_expression "puVar60 + 0x15331c" identifier + number_literal) ))))) ;) (expression_statement "iVar57 = *(int *)(puVar60 + 0x15331c);" (assignment_expression "iVar57 = *(int *)(puVar60 + 0x15331c)" identifier = (pointer_expression "*(int *)(puVar60 + 0x15331c)" * (cast_expression "(int *)(puVar60 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x15331c)" ( (binary_expression "puVar60 + 0x15331c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar60 + 0x154278))(auStack_4144,pIVar40->magick + 0x130,0xffa);" (call_expression "(**(code **)(puVar60 + 0x154278))(auStack_4144,pIVar40->magick + 0x130,0xffa)" (parenthesized_expression "(**(code **)(puVar60 + 0x154278))" ( (pointer_expression "**(code **)(puVar60 + 0x154278)" * (pointer_expression "*(code **)(puVar60 + 0x154278)" * (cast_expression "(code **)(puVar60 + 0x154278)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x154278)" ( (binary_expression "puVar60 + 0x154278" identifier + number_literal) ))))) )) (argument_list "(auStack_4144,pIVar40->magick + 0x130,0xffa)" ( identifier , (binary_expression "pIVar40->magick + 0x130" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) , number_literal ))) ;) (expression_statement "ppcVar53 = &aFStack_5150[0]._IO_read_base;" (assignment_expression "ppcVar53 = &aFStack_5150[0]._IO_read_base" identifier = (pointer_expression "&aFStack_5150[0]._IO_read_base" & (field_expression "aFStack_5150[0]._IO_read_base" (subscript_expression "aFStack_5150[0]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "iVar11 = *(int *)(puVar60 + 0x153388);" (assignment_expression "iVar11 = *(int *)(puVar60 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(puVar60 + 0x153388);" (assignment_expression "iVar13 = *(int *)(puVar60 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = *(int *)(puVar60 + 0x153388);" (assignment_expression "iVar22 = *(int *)(puVar60 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar60 + 0x1539e4))(*(int *)(puVar60 + 0x153328) + -0x50b8,auStack_4144);" (call_expression "(**(code **)(puVar60 + 0x1539e4))(*(int *)(puVar60 + 0x153328) + -0x50b8,auStack_4144)" (parenthesized_expression "(**(code **)(puVar60 + 0x1539e4))" ( (pointer_expression "**(code **)(puVar60 + 0x1539e4)" * (pointer_expression "*(code **)(puVar60 + 0x1539e4)" * (cast_expression "(code **)(puVar60 + 0x1539e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1539e4)" ( (binary_expression "puVar60 + 0x1539e4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar60 + 0x153328) + -0x50b8,auStack_4144)" ( (binary_expression "*(int *)(puVar60 + 0x153328) + -0x50b8" (pointer_expression "*(int *)(puVar60 + 0x153328)" * (cast_expression "(int *)(puVar60 + 0x153328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153328)" ( (binary_expression "puVar60 + 0x153328" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "aFStack_5150[0]._IO_read_ptr = (char *)0x0;" (assignment_expression "aFStack_5150[0]._IO_read_ptr = (char *)0x0" (field_expression "aFStack_5150[0]._IO_read_ptr" (subscript_expression "aFStack_5150[0]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aFStack_5150[0]._flags = 0;" (assignment_expression "aFStack_5150[0]._flags = 0" (field_expression "aFStack_5150[0]._flags" (subscript_expression "aFStack_5150[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "(**(code **)(puVar60 + 0x153cb4))(pIVar40);" (call_expression "(**(code **)(puVar60 + 0x153cb4))(pIVar40)" (parenthesized_expression "(**(code **)(puVar60 + 0x153cb4))" ( (pointer_expression "**(code **)(puVar60 + 0x153cb4)" * (pointer_expression "*(code **)(puVar60 + 0x153cb4)" * (cast_expression "(code **)(puVar60 + 0x153cb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153cb4)" ( (binary_expression "puVar60 + 0x153cb4" identifier + number_literal) ))))) )) (argument_list "(pIVar40)" ( identifier ))) ;) (expression_statement "dVar74 = *(double *)(iVar54 + 0x1418);" (assignment_expression "dVar74 = *(double *)(iVar54 + 0x1418)" identifier = (pointer_expression "*(double *)(iVar54 + 0x1418)" * (cast_expression "(double *)(iVar54 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar54 + 0x1418)" ( (binary_expression "iVar54 + 0x1418" identifier + number_literal) ))))) ;) (expression_statement "iVar23 = *(int *)(puVar60 + 0x153388);" (assignment_expression "iVar23 = *(int *)(puVar60 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "dVar73 = *(double *)(iVar56 + 0x1400);" (assignment_expression "dVar73 = *(double *)(iVar56 + 0x1400)" identifier = (pointer_expression "*(double *)(iVar56 + 0x1400)" * (cast_expression "(double *)(iVar56 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar56 + 0x1400)" ( (binary_expression "iVar56 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "iVar36 = *(int *)(puVar60 + 0x153388);" (assignment_expression "iVar36 = *(int *)(puVar60 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "dVar72 = *(double *)(iVar57 + 0x1410);" (assignment_expression "dVar72 = *(double *)(iVar57 + 0x1410)" identifier = (pointer_expression "*(double *)(iVar57 + 0x1410)" * (cast_expression "(double *)(iVar57 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar57 + 0x1410)" ( (binary_expression "iVar57 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = *(int *)(puVar60 + 0x153388);" (assignment_expression "iVar24 = *(int *)(puVar60 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "pFStack_5188 = (FILE *)0x0;" (assignment_expression "pFStack_5188 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar25 = *(int *)(puVar60 + 0x153388);" (assignment_expression "iVar25 = *(int *)(puVar60 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) ))))) ;) (do_statement "do {\n        (**(code **)(puVar60 + 0x154260))(pIVar40,pIVar40->compression,pFVar45);\n        iVar26 = (**(code **)(puVar60 + 0x153c24))(pIVar40,1);\n        if (pIVar40->compression == B44Compression) {\n          pcVar42 = pIVar40->page;\n          if (pcVar42 == (char *)0x0) {\n            pcVar42 = (char *)0x1;\n          }\n          else {\n            pcVar46 = (char *)0x0;\n            if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }\n            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));\n            if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }\n          }\n          if (pcVar42 < pIVar40->scenes) {\n            (**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);\n          }\n        }\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar11 + -0x7434);\n        uVar55 = (**(code **)(puVar60 + 0x154128))(0);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar13 + -0x741c,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(5,pIVar40->compression);\n        dVar71 = (double)(int)pIVar40->scenes;\n        if ((int)pIVar40->scenes < 0) {\n          dVar71 = dVar71 + dVar74;\n        }\n        uVar27 = (**(code **)(puVar60 + 0x15379c))(0x3a,*(undefined4 *)(pIVar40->magick + 0xac));\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar22 + -0x7990,uVar55,dVar71,uVar27);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar36 + -0x7404);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        dVar71 = (double)(int)pIVar40->page;\n        if ((int)pIVar40->page < 0) {\n          dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar62 = (double)(int)pIVar40->extract;\n        if ((int)pIVar40->extract < 0) {\n          dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar63 = (double)(int)pIVar40->size;\n        if ((int)pIVar40->size < 0) {\n          dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n        }\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar23 + -0x73d0);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x90) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x49);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,\n                     dVar71);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(9,pIVar40->orientation);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar24 + -0x7928,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x44) == 0) {\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (*(int *)(pIVar40->magick + 0x4c) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar55 = (*pcVar61)(0x18);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (pIVar40->temporary != MagickFalse) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (*(int *)(pIVar40->magick + 0x4c) != 0) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (pIVar40->temporary != MagickFalse) {\nLAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);\n            dVar63 = (double)(int)pIVar40->adjoin;\n            if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        if (pIVar40->stream != (StreamHandler)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x41);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = *(double *)(pIVar40->magick + 8);\n        dVar67 = *(double *)(pIVar40->magick + 0x10);\n        if ((dVar71 != 0.0) || (dVar67 != 0.0)) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n          dVar62 = dVar67;\n        }\n        iVar37 = *(int *)(pIVar40->magick + 0x18);\n        iVar39 = *(int *)(pIVar40->magick + 0x1c);\n        iVar47 = *(int *)(pIVar40->magick + 0x20);\n        iVar28 = *(int *)(pIVar40->magick + 0x24);\n        if ((iVar37 == 0) && (iVar39 == 0)) {\n          if ((iVar47 != 0) || (iVar28 != 0)) {\n            uVar55 = SUB84(dVar63,0);\n            dVar63 = (double)CONCAT44(iVar28,uVar55);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar62 = (double)iVar39;\n          if (iVar39 < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar63 = (double)iVar37;\n          if (iVar37 < 0) {\n            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n          }\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28);\nLAB_00255ed4:\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        iVar28 = *(int *)(pIVar40->magick + 0x8c);\n        if ((*(int *)(pIVar40->magick + 0x88) != 0) ||\n           (pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0)) {\n          dVar63 = (double)CONCAT44(iVar28,SUB84(dVar63,0));\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,\n                     *(int *)(pIVar40->magick + 0x88),iVar28);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pcVar61 = *(code **)(puVar60 + 0x153eac);\n        }\n        iVar28 = (*pcVar61)(pIVar40);\n        iVar37 = *(int *)(pIVar40->magick + 0x5c);\n        if (iVar28 == 0) {\n          iVar28 = (**(code **)(puVar60 + 0x1536e8))(pIVar40);\n          if (iVar28 != 0) goto LAB_00255b3c;\n          if (iVar37 != 0) {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x6c);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x60);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          if (*(int *)(pIVar40->magick + 0x68) != 100) {\n            dVar63 = (double)*(int *)(pIVar40->magick + 0x68);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);\n          if (*(int *)(pIVar40->magick + 0x6c) < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar71 = (double)*(int *)(pIVar40->magick + 0x60);\n          if (*(int *)(pIVar40->magick + 0x60) < 0) {\n            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n          }\n          if (iVar37 == 0) {\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);\n            dVar63 = dVar62;\n            dVar62 = dVar71;\n          }\n          else {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x50) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x21);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x58) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x15);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->client_data != (void *)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x23);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = (double)(pIVar40->transparent_color).count;\n        if (dVar71 != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n        }\n        if (*(double *)&pIVar40->verbose != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar62 = *(double *)&pIVar40->options;\n          dVar63 = *(double *)&pIVar40->verbose;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->affirm != MagickFalse) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x36);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->cache == (void *)0x0) {\nLAB_00255c28:\n          pFVar12 = pIVar40->file;\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          if (iVar28 == 0) goto LAB_00255c28;\n          iVar37 = *(int *)(puVar60 + 0x153388);\n          do {\n            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          } while (iVar28 != 0);\n          pFVar12 = pIVar40->file;\n        }\n        if (pFVar12 != (FILE *)0x0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        (**(code **)(puVar60 + 0x1536d0))(pIVar40);\n        pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);\n        if (pFVar29 != (FILE *)0x0) {\n          iVar28 = *(int *)(puVar60 + 0x153388);\nLAB_00255c90:\n          pFVar12 = pFVar29;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pbVar30 = (byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45);\n          if (pbVar30 != (byte *)0x0) {\n            iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);\n            if (iVar37 != 0) {\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n            iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n            if (iVar39 == 0) {\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar25 + -0x770c);\n        if (pIVar40->file != (FILE *)0x0) {\n          if (pIVar40->blob != (void *)0x0) {\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40);\n          }\n          (**(code **)(puVar60 + 0x153a18))(pIVar40,0);\n        }\n        if (pIVar40->cache == (void *)0x0) {\n          if (pIVar40->compression == B44Compression) {\nLAB_002561e8:\n            uVar14 = (uint)(iVar26 * 3) >> 3;\n            puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);\n            if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;\n            pcVar42 = pIVar40->scenes;\n            if (0 < (int)pcVar42) {\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);\n            (**(code **)(puVar60 + 0x1539fc))(puVar32);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          while( true ) {\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n            if (iVar28 == 0) break;\n            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n          if (pIVar40->compression == B44Compression) goto LAB_002561e8;\n        }\n        pFVar12 = aFStack_5150;\n        pIVar15 = (Image *)(*pcVar61)(pIVar40,auStack_4144,0,pFVar12,pFVar45);\n        if (pIVar15 == (Image *)0x0) {\n          pFVar12 = (FILE *)0x605;\n          (**(code **)(puVar60 + 0x15395c))\n                    (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,\n                     pIVar40->magick + 0x130);\n          pIVar9 = pIVar40;\n          if (*(int *)(iVar8 + 0xc) == 0) {\n            pcVar61 = *(code **)(puVar60 + 0x1540c4);\n          }\n          else {\n            do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar26 = (**(code **)(puVar60 + 0x153eac))(pIVar40);\n        if (iVar26 == 0) break;\n        pIVar40 = (ImageInfo *)(**(code **)(puVar60 + 0x153e44))(pIVar40);\n        if (*(code **)(pIVar40->magick + 0x118) != (code *)0x0) {\n          pFVar12 = pFStack_5188;\n          pIVar15 = (Image *)(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150);\n          if (pIVar15 == (Image *)0x0) break;\n        }\n        pFStack_5188 = (FILE *)((int)&pFStack_5188->_flags + 1);\n      } while (*(int *)(iVar8 + 0xc) != 0);" do (compound_statement "{\n        (**(code **)(puVar60 + 0x154260))(pIVar40,pIVar40->compression,pFVar45);\n        iVar26 = (**(code **)(puVar60 + 0x153c24))(pIVar40,1);\n        if (pIVar40->compression == B44Compression) {\n          pcVar42 = pIVar40->page;\n          if (pcVar42 == (char *)0x0) {\n            pcVar42 = (char *)0x1;\n          }\n          else {\n            pcVar46 = (char *)0x0;\n            if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }\n            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));\n            if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }\n          }\n          if (pcVar42 < pIVar40->scenes) {\n            (**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);\n          }\n        }\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar11 + -0x7434);\n        uVar55 = (**(code **)(puVar60 + 0x154128))(0);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar13 + -0x741c,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(5,pIVar40->compression);\n        dVar71 = (double)(int)pIVar40->scenes;\n        if ((int)pIVar40->scenes < 0) {\n          dVar71 = dVar71 + dVar74;\n        }\n        uVar27 = (**(code **)(puVar60 + 0x15379c))(0x3a,*(undefined4 *)(pIVar40->magick + 0xac));\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar22 + -0x7990,uVar55,dVar71,uVar27);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar36 + -0x7404);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        dVar71 = (double)(int)pIVar40->page;\n        if ((int)pIVar40->page < 0) {\n          dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar62 = (double)(int)pIVar40->extract;\n        if ((int)pIVar40->extract < 0) {\n          dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n        }\n        dVar63 = (double)(int)pIVar40->size;\n        if ((int)pIVar40->size < 0) {\n          dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n        }\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar23 + -0x73d0);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x90) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x49);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,\n                     dVar71);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        uVar55 = (**(code **)(puVar60 + 0x15379c))(9,pIVar40->orientation);\n        (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar24 + -0x7928,uVar55);\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        if (*(int *)(pIVar40->magick + 0x44) == 0) {\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (*(int *)(pIVar40->magick + 0x4c) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar55 = (*pcVar61)(0x18);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (pIVar40->temporary != MagickFalse) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (*(int *)(pIVar40->magick + 0x4c) != 0) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (pIVar40->temporary != MagickFalse) {\nLAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);\n            dVar63 = (double)(int)pIVar40->adjoin;\n            if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        if (pIVar40->stream != (StreamHandler)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x41);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = *(double *)(pIVar40->magick + 8);\n        dVar67 = *(double *)(pIVar40->magick + 0x10);\n        if ((dVar71 != 0.0) || (dVar67 != 0.0)) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n          dVar62 = dVar67;\n        }\n        iVar37 = *(int *)(pIVar40->magick + 0x18);\n        iVar39 = *(int *)(pIVar40->magick + 0x1c);\n        iVar47 = *(int *)(pIVar40->magick + 0x20);\n        iVar28 = *(int *)(pIVar40->magick + 0x24);\n        if ((iVar37 == 0) && (iVar39 == 0)) {\n          if ((iVar47 != 0) || (iVar28 != 0)) {\n            uVar55 = SUB84(dVar63,0);\n            dVar63 = (double)CONCAT44(iVar28,uVar55);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar62 = (double)iVar39;\n          if (iVar39 < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar63 = (double)iVar37;\n          if (iVar37 < 0) {\n            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n          }\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28);\nLAB_00255ed4:\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        iVar28 = *(int *)(pIVar40->magick + 0x8c);\n        if ((*(int *)(pIVar40->magick + 0x88) != 0) ||\n           (pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0)) {\n          dVar63 = (double)CONCAT44(iVar28,SUB84(dVar63,0));\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,\n                     *(int *)(pIVar40->magick + 0x88),iVar28);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pcVar61 = *(code **)(puVar60 + 0x153eac);\n        }\n        iVar28 = (*pcVar61)(pIVar40);\n        iVar37 = *(int *)(pIVar40->magick + 0x5c);\n        if (iVar28 == 0) {\n          iVar28 = (**(code **)(puVar60 + 0x1536e8))(pIVar40);\n          if (iVar28 != 0) goto LAB_00255b3c;\n          if (iVar37 != 0) {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x6c);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x60);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          if (*(int *)(pIVar40->magick + 0x68) != 100) {\n            dVar63 = (double)*(int *)(pIVar40->magick + 0x68);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);\n          if (*(int *)(pIVar40->magick + 0x6c) < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar71 = (double)*(int *)(pIVar40->magick + 0x60);\n          if (*(int *)(pIVar40->magick + 0x60) < 0) {\n            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n          }\n          if (iVar37 == 0) {\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);\n            dVar63 = dVar62;\n            dVar62 = dVar71;\n          }\n          else {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x50) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x21);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (*(int *)(pIVar40->magick + 0x58) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x15);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->client_data != (void *)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x23);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        dVar71 = (double)(pIVar40->transparent_color).count;\n        if (dVar71 != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n        }\n        if (*(double *)&pIVar40->verbose != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar62 = *(double *)&pIVar40->options;\n          dVar63 = *(double *)&pIVar40->verbose;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->affirm != MagickFalse) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x36);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        if (pIVar40->cache == (void *)0x0) {\nLAB_00255c28:\n          pFVar12 = pIVar40->file;\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          if (iVar28 == 0) goto LAB_00255c28;\n          iVar37 = *(int *)(puVar60 + 0x153388);\n          do {\n            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          } while (iVar28 != 0);\n          pFVar12 = pIVar40->file;\n        }\n        if (pFVar12 != (FILE *)0x0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }\n        (**(code **)(puVar60 + 0x1536d0))(pIVar40);\n        pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);\n        if (pFVar29 != (FILE *)0x0) {\n          iVar28 = *(int *)(puVar60 + 0x153388);\nLAB_00255c90:\n          pFVar12 = pFVar29;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pbVar30 = (byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45);\n          if (pbVar30 != (byte *)0x0) {\n            iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);\n            if (iVar37 != 0) {\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n            iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n            if (iVar39 == 0) {\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar25 + -0x770c);\n        if (pIVar40->file != (FILE *)0x0) {\n          if (pIVar40->blob != (void *)0x0) {\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40);\n          }\n          (**(code **)(puVar60 + 0x153a18))(pIVar40,0);\n        }\n        if (pIVar40->cache == (void *)0x0) {\n          if (pIVar40->compression == B44Compression) {\nLAB_002561e8:\n            uVar14 = (uint)(iVar26 * 3) >> 3;\n            puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);\n            if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;\n            pcVar42 = pIVar40->scenes;\n            if (0 < (int)pcVar42) {\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);\n            (**(code **)(puVar60 + 0x1539fc))(puVar32);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          while( true ) {\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n            if (iVar28 == 0) break;\n            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n          if (pIVar40->compression == B44Compression) goto LAB_002561e8;\n        }\n        pFVar12 = aFStack_5150;\n        pIVar15 = (Image *)(*pcVar61)(pIVar40,auStack_4144,0,pFVar12,pFVar45);\n        if (pIVar15 == (Image *)0x0) {\n          pFVar12 = (FILE *)0x605;\n          (**(code **)(puVar60 + 0x15395c))\n                    (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,\n                     pIVar40->magick + 0x130);\n          pIVar9 = pIVar40;\n          if (*(int *)(iVar8 + 0xc) == 0) {\n            pcVar61 = *(code **)(puVar60 + 0x1540c4);\n          }\n          else {\n            do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar26 = (**(code **)(puVar60 + 0x153eac))(pIVar40);\n        if (iVar26 == 0) break;\n        pIVar40 = (ImageInfo *)(**(code **)(puVar60 + 0x153e44))(pIVar40);\n        if (*(code **)(pIVar40->magick + 0x118) != (code *)0x0) {\n          pFVar12 = pFStack_5188;\n          pIVar15 = (Image *)(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150);\n          if (pIVar15 == (Image *)0x0) break;\n        }\n        pFStack_5188 = (FILE *)((int)&pFStack_5188->_flags + 1);\n      }" { (expression_statement "(**(code **)(puVar60 + 0x154260))(pIVar40,pIVar40->compression,pFVar45);" (call_expression "(**(code **)(puVar60 + 0x154260))(pIVar40,pIVar40->compression,pFVar45)" (parenthesized_expression "(**(code **)(puVar60 + 0x154260))" ( (pointer_expression "**(code **)(puVar60 + 0x154260)" * (pointer_expression "*(code **)(puVar60 + 0x154260)" * (cast_expression "(code **)(puVar60 + 0x154260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x154260)" ( (binary_expression "puVar60 + 0x154260" identifier + number_literal) ))))) )) (argument_list "(pIVar40,pIVar40->compression,pFVar45)" ( identifier , (field_expression "pIVar40->compression" identifier -> field_identifier) , identifier ))) ;) (expression_statement "iVar26 = (**(code **)(puVar60 + 0x153c24))(pIVar40,1);" (assignment_expression "iVar26 = (**(code **)(puVar60 + 0x153c24))(pIVar40,1)" identifier = (call_expression "(**(code **)(puVar60 + 0x153c24))(pIVar40,1)" (parenthesized_expression "(**(code **)(puVar60 + 0x153c24))" ( (pointer_expression "**(code **)(puVar60 + 0x153c24)" * (pointer_expression "*(code **)(puVar60 + 0x153c24)" * (cast_expression "(code **)(puVar60 + 0x153c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153c24)" ( (binary_expression "puVar60 + 0x153c24" identifier + number_literal) ))))) )) (argument_list "(pIVar40,1)" ( identifier , number_literal )))) ;) (if_statement "if (pIVar40->compression == B44Compression) {\n          pcVar42 = pIVar40->page;\n          if (pcVar42 == (char *)0x0) {\n            pcVar42 = (char *)0x1;\n          }\n          else {\n            pcVar46 = (char *)0x0;\n            if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }\n            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));\n            if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }\n          }\n          if (pcVar42 < pIVar40->scenes) {\n            (**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);\n          }\n        }" if (parenthesized_expression "(pIVar40->compression == B44Compression)" ( (binary_expression "pIVar40->compression == B44Compression" (field_expression "pIVar40->compression" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          pcVar42 = pIVar40->page;\n          if (pcVar42 == (char *)0x0) {\n            pcVar42 = (char *)0x1;\n          }\n          else {\n            pcVar46 = (char *)0x0;\n            if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }\n            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));\n            if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }\n          }\n          if (pcVar42 < pIVar40->scenes) {\n            (**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);\n          }\n        }" { (expression_statement "pcVar42 = pIVar40->page;" (assignment_expression "pcVar42 = pIVar40->page" identifier = (field_expression "pIVar40->page" identifier -> field_identifier)) ;) (if_statement "if (pcVar42 == (char *)0x0) {\n            pcVar42 = (char *)0x1;\n          }\n          else {\n            pcVar46 = (char *)0x0;\n            if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }\n            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));\n            if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }\n          }" if (parenthesized_expression "(pcVar42 == (char *)0x0)" ( (binary_expression "pcVar42 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar42 = (char *)0x1;\n          }" { (expression_statement "pcVar42 = (char *)0x1;" (assignment_expression "pcVar42 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            pcVar46 = (char *)0x0;\n            if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }\n            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));\n            if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }\n          }" else (compound_statement "{\n            pcVar46 = (char *)0x0;\n            if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }\n            pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));\n            if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }\n          }" { (expression_statement "pcVar46 = (char *)0x0;" (assignment_expression "pcVar46 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pcVar42 < (char *)0x41) {\n              pcVar46 = pcVar42;\n            }" if (parenthesized_expression "(pcVar42 < (char *)0x41)" ( (binary_expression "pcVar42 < (char *)0x41" identifier < (cast_expression "(char *)0x41" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar46 = pcVar42;\n            }" { (expression_statement "pcVar46 = pcVar42;" (assignment_expression "pcVar46 = pcVar42" identifier = identifier) ;) })) (expression_statement "pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f));" (assignment_expression "pcVar42 = (char *)(2 << ((uint)(pcVar46 + -1) & 0x1f))" identifier = (cast_expression "(char *)(2 << ((uint)(pcVar46 + -1) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(2 << ((uint)(pcVar46 + -1) & 0x1f))" ( (binary_expression "2 << ((uint)(pcVar46 + -1) & 0x1f)" number_literal << (parenthesized_expression "((uint)(pcVar46 + -1) & 0x1f)" ( (binary_expression "(uint)(pcVar46 + -1) & 0x1f" (call_expression "(uint)(pcVar46 + -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar46 + -1)" ( (binary_expression "pcVar46 + -1" identifier + number_literal) ))) & number_literal) ))) )))) ;) (if_statement "if (((uint)(pcVar46 + -1) & 0x20) != 0) {\n              pcVar42 = (char *)0x0;\n            }" if (parenthesized_expression "(((uint)(pcVar46 + -1) & 0x20) != 0)" ( (binary_expression "((uint)(pcVar46 + -1) & 0x20) != 0" (parenthesized_expression "((uint)(pcVar46 + -1) & 0x20)" ( (binary_expression "(uint)(pcVar46 + -1) & 0x20" (call_expression "(uint)(pcVar46 + -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar46 + -1)" ( (binary_expression "pcVar46 + -1" identifier + number_literal) ))) & number_literal) )) != number_literal) )) (compound_statement "{\n              pcVar42 = (char *)0x0;\n            }" { (expression_statement "pcVar42 = (char *)0x0;" (assignment_expression "pcVar42 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (if_statement "if (pcVar42 < pIVar40->scenes) {\n            (**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);\n          }" if (parenthesized_expression "(pcVar42 < pIVar40->scenes)" ( (binary_expression "pcVar42 < pIVar40->scenes" identifier < (field_expression "pIVar40->scenes" identifier -> field_identifier)) )) (compound_statement "{\n            (**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);\n          }" { (expression_statement "(**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45);" (call_expression "(**(code **)(puVar60 + 0x154260))(pIVar40,1,pFVar45)" (parenthesized_expression "(**(code **)(puVar60 + 0x154260))" ( (pointer_expression "**(code **)(puVar60 + 0x154260)" * (pointer_expression "*(code **)(puVar60 + 0x154260)" * (cast_expression "(code **)(puVar60 + 0x154260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x154260)" ( (binary_expression "puVar60 + 0x154260" identifier + number_literal) ))))) )) (argument_list "(pIVar40,1,pFVar45)" ( identifier , number_literal , identifier ))) ;) })) })) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar11 + -0x7434);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar11 + -0x7434)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,iVar11 + -0x7434)" ( identifier , (binary_expression "iVar11 + -0x7434" identifier + number_literal) ))) ;) (expression_statement "uVar55 = (**(code **)(puVar60 + 0x154128))(0);" (assignment_expression "uVar55 = (**(code **)(puVar60 + 0x154128))(0)" identifier = (call_expression "(**(code **)(puVar60 + 0x154128))(0)" (parenthesized_expression "(**(code **)(puVar60 + 0x154128))" ( (pointer_expression "**(code **)(puVar60 + 0x154128)" * (pointer_expression "*(code **)(puVar60 + 0x154128)" * (cast_expression "(code **)(puVar60 + 0x154128)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x154128)" ( (binary_expression "puVar60 + 0x154128" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar13 + -0x741c,uVar55);" (call_expression "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar13 + -0x741c,uVar55)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,iVar13 + -0x741c,uVar55)" ( identifier , number_literal , (binary_expression "iVar13 + -0x741c" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) (expression_statement "uVar55 = (**(code **)(puVar60 + 0x15379c))(5,pIVar40->compression);" (assignment_expression "uVar55 = (**(code **)(puVar60 + 0x15379c))(5,pIVar40->compression)" identifier = (call_expression "(**(code **)(puVar60 + 0x15379c))(5,pIVar40->compression)" (parenthesized_expression "(**(code **)(puVar60 + 0x15379c))" ( (pointer_expression "**(code **)(puVar60 + 0x15379c)" * (pointer_expression "*(code **)(puVar60 + 0x15379c)" * (cast_expression "(code **)(puVar60 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15379c)" ( (binary_expression "puVar60 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(5,pIVar40->compression)" ( number_literal , (field_expression "pIVar40->compression" identifier -> field_identifier) )))) ;) (expression_statement "dVar71 = (double)(int)pIVar40->scenes;" (assignment_expression "dVar71 = (double)(int)pIVar40->scenes" identifier = (cast_expression "(double)(int)pIVar40->scenes" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pIVar40->scenes" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar40->scenes" identifier -> field_identifier)))) ;) (if_statement "if ((int)pIVar40->scenes < 0) {\n          dVar71 = dVar71 + dVar74;\n        }" if (parenthesized_expression "((int)pIVar40->scenes < 0)" ( (binary_expression "(int)pIVar40->scenes < 0" (cast_expression "(int)pIVar40->scenes" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar40->scenes" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n          dVar71 = dVar71 + dVar74;\n        }" { (expression_statement "dVar71 = dVar71 + dVar74;" (assignment_expression "dVar71 = dVar71 + dVar74" identifier = (binary_expression "dVar71 + dVar74" identifier + identifier)) ;) })) (expression_statement "uVar27 = (**(code **)(puVar60 + 0x15379c))(0x3a,*(undefined4 *)(pIVar40->magick + 0xac));" (assignment_expression "uVar27 = (**(code **)(puVar60 + 0x15379c))(0x3a,*(undefined4 *)(pIVar40->magick + 0xac))" identifier = (call_expression "(**(code **)(puVar60 + 0x15379c))(0x3a,*(undefined4 *)(pIVar40->magick + 0xac))" (parenthesized_expression "(**(code **)(puVar60 + 0x15379c))" ( (pointer_expression "**(code **)(puVar60 + 0x15379c)" * (pointer_expression "*(code **)(puVar60 + 0x15379c)" * (cast_expression "(code **)(puVar60 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15379c)" ( (binary_expression "puVar60 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x3a,*(undefined4 *)(pIVar40->magick + 0xac))" ( number_literal , (pointer_expression "*(undefined4 *)(pIVar40->magick + 0xac)" * (cast_expression "(undefined4 *)(pIVar40->magick + 0xac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0xac)" ( (binary_expression "pIVar40->magick + 0xac" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar22 + -0x7990,uVar55,dVar71,uVar27);" (call_expression "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar22 + -0x7990,uVar55,dVar71,uVar27)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,iVar22 + -0x7990,uVar55,dVar71,uVar27)" ( identifier , number_literal , (binary_expression "iVar22 + -0x7990" identifier + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar36 + -0x7404);" (call_expression "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar36 + -0x7404)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,iVar36 + -0x7404)" ( identifier , number_literal , (binary_expression "iVar36 + -0x7404" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) (expression_statement "dVar71 = (double)(int)pIVar40->page;" (assignment_expression "dVar71 = (double)(int)pIVar40->page" identifier = (cast_expression "(double)(int)pIVar40->page" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pIVar40->page" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar40->page" identifier -> field_identifier)))) ;) (if_statement "if ((int)pIVar40->page < 0) {\n          dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n        }" if (parenthesized_expression "((int)pIVar40->page < 0)" ( (binary_expression "(int)pIVar40->page < 0" (cast_expression "(int)pIVar40->page" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar40->page" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n          dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n        }" { (expression_statement "dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);" (assignment_expression "dVar71 = dVar71 + *(double *)(iVar54 + 0x1418)" identifier = (binary_expression "dVar71 + *(double *)(iVar54 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar54 + 0x1418)" * (cast_expression "(double *)(iVar54 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar54 + 0x1418)" ( (binary_expression "iVar54 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar62 = (double)(int)pIVar40->extract;" (assignment_expression "dVar62 = (double)(int)pIVar40->extract" identifier = (cast_expression "(double)(int)pIVar40->extract" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pIVar40->extract" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar40->extract" identifier -> field_identifier)))) ;) (if_statement "if ((int)pIVar40->extract < 0) {\n          dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n        }" if (parenthesized_expression "((int)pIVar40->extract < 0)" ( (binary_expression "(int)pIVar40->extract < 0" (cast_expression "(int)pIVar40->extract" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar40->extract" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n          dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n        }" { (expression_statement "dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);" (assignment_expression "dVar62 = dVar62 + *(double *)(iVar54 + 0x1418)" identifier = (binary_expression "dVar62 + *(double *)(iVar54 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar54 + 0x1418)" * (cast_expression "(double *)(iVar54 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar54 + 0x1418)" ( (binary_expression "iVar54 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar63 = (double)(int)pIVar40->size;" (assignment_expression "dVar63 = (double)(int)pIVar40->size" identifier = (cast_expression "(double)(int)pIVar40->size" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pIVar40->size" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar40->size" identifier -> field_identifier)))) ;) (if_statement "if ((int)pIVar40->size < 0) {\n          dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n        }" if (parenthesized_expression "((int)pIVar40->size < 0)" ( (binary_expression "(int)pIVar40->size < 0" (cast_expression "(int)pIVar40->size" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar40->size" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n          dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n        }" { (expression_statement "dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);" (assignment_expression "dVar63 = dVar63 + *(double *)(iVar54 + 0x1418)" identifier = (binary_expression "dVar63 + *(double *)(iVar54 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar54 + 0x1418)" * (cast_expression "(double *)(iVar54 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar54 + 0x1418)" ( (binary_expression "iVar54 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar23 + -0x73d0);" (call_expression "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar23 + -0x73d0)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,iVar23 + -0x73d0)" ( identifier , number_literal , (binary_expression "iVar23 + -0x73d0" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(pIVar40->magick + 0x90) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x49);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,\n                     dVar71);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" if (parenthesized_expression "(*(int *)(pIVar40->magick + 0x90) != 0)" ( (binary_expression "*(int *)(pIVar40->magick + 0x90) != 0" (pointer_expression "*(int *)(pIVar40->magick + 0x90)" * (cast_expression "(int *)(pIVar40->magick + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x90)" ( (binary_expression "pIVar40->magick + 0x90" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x49);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,\n                     dVar71);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" { (expression_statement "uVar55 = (**(code **)(puVar60 + 0x15379c))(0x49);" (assignment_expression "uVar55 = (**(code **)(puVar60 + 0x15379c))(0x49)" identifier = (call_expression "(**(code **)(puVar60 + 0x15379c))(0x49)" (parenthesized_expression "(**(code **)(puVar60 + 0x15379c))" ( (pointer_expression "**(code **)(puVar60 + 0x15379c)" * (pointer_expression "*(code **)(puVar60 + 0x15379c)" * (cast_expression "(code **)(puVar60 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15379c)" ( (binary_expression "puVar60 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x49)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,\n                     dVar71);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,\n                     dVar71)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7934,uVar55,dVar63,dVar62,\n                     dVar71)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7934" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) })) (expression_statement "uVar55 = (**(code **)(puVar60 + 0x15379c))(9,pIVar40->orientation);" (assignment_expression "uVar55 = (**(code **)(puVar60 + 0x15379c))(9,pIVar40->orientation)" identifier = (call_expression "(**(code **)(puVar60 + 0x15379c))(9,pIVar40->orientation)" (parenthesized_expression "(**(code **)(puVar60 + 0x15379c))" ( (pointer_expression "**(code **)(puVar60 + 0x15379c)" * (pointer_expression "*(code **)(puVar60 + 0x15379c)" * (cast_expression "(code **)(puVar60 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15379c)" ( (binary_expression "puVar60 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(9,pIVar40->orientation)" ( number_literal , (field_expression "pIVar40->orientation" identifier -> field_identifier) )))) ;) (expression_statement "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar24 + -0x7928,uVar55);" (call_expression "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar24 + -0x7928,uVar55)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,iVar24 + -0x7928,uVar55)" ( identifier , number_literal , (binary_expression "iVar24 + -0x7928" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(pIVar40->magick + 0x44) == 0) {\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (*(int *)(pIVar40->magick + 0x4c) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar55 = (*pcVar61)(0x18);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (pIVar40->temporary != MagickFalse) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (*(int *)(pIVar40->magick + 0x4c) != 0) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (pIVar40->temporary != MagickFalse) {\nLAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);\n            dVar63 = (double)(int)pIVar40->adjoin;\n            if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }" if (parenthesized_expression "(*(int *)(pIVar40->magick + 0x44) == 0)" ( (binary_expression "*(int *)(pIVar40->magick + 0x44) == 0" (pointer_expression "*(int *)(pIVar40->magick + 0x44)" * (cast_expression "(int *)(pIVar40->magick + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x44)" ( (binary_expression "pIVar40->magick + 0x44" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (*(int *)(pIVar40->magick + 0x4c) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar55 = (*pcVar61)(0x18);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (pIVar40->temporary != MagickFalse) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }" { (expression_statement "pcVar61 = *(code **)(puVar60 + 0x15379c);" (assignment_expression "pcVar61 = *(code **)(puVar60 + 0x15379c)" identifier = (pointer_expression "*(code **)(puVar60 + 0x15379c)" * (cast_expression "(code **)(puVar60 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15379c)" ( (binary_expression "puVar60 + 0x15379c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(pIVar40->magick + 0x4c) == 0) goto LAB_00255a3c;" if (parenthesized_expression "(*(int *)(pIVar40->magick + 0x4c) == 0)" ( (binary_expression "*(int *)(pIVar40->magick + 0x4c) == 0" (pointer_expression "*(int *)(pIVar40->magick + 0x4c)" * (cast_expression "(int *)(pIVar40->magick + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x4c)" ( (binary_expression "pIVar40->magick + 0x4c" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00255a3c;" goto statement_identifier ;)) (labeled_statement "LAB_002565f0:\n          uVar55 = (*pcVar61)(0x18);" statement_identifier : (expression_statement "uVar55 = (*pcVar61)(0x18);" (assignment_expression "uVar55 = (*pcVar61)(0x18)" identifier = (call_expression "(*pcVar61)(0x18)" (parenthesized_expression "(*pcVar61)" ( (pointer_expression "*pcVar61" * identifier) )) (argument_list "(0x18)" ( number_literal )))) ;)) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7904,uVar55)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7904" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) (if_statement "if (pIVar40->temporary != MagickFalse) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_0025663c;\n          }" if (parenthesized_expression "(pIVar40->temporary != MagickFalse)" ( (binary_expression "pIVar40->temporary != MagickFalse" (field_expression "pIVar40->temporary" identifier -> field_identifier) != identifier) )) (compound_statement "{\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_0025663c;\n          }" { (expression_statement "pcVar61 = *(code **)(puVar60 + 0x15379c);" (assignment_expression "pcVar61 = *(code **)(puVar60 + 0x15379c)" identifier = (pointer_expression "*(code **)(puVar60 + 0x15379c)" * (cast_expression "(code **)(puVar60 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15379c)" ( (binary_expression "puVar60 + 0x15379c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0025663c;" goto statement_identifier ;) })) }) (else_clause "else {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (*(int *)(pIVar40->magick + 0x4c) != 0) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (pIVar40->temporary != MagickFalse) {\nLAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);\n            dVar63 = (double)(int)pIVar40->adjoin;\n            if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }" else (compound_statement "{\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          if (*(int *)(pIVar40->magick + 0x4c) != 0) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar61 = *(code **)(puVar60 + 0x15379c);\n          if (pIVar40->temporary != MagickFalse) {\nLAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);\n            dVar63 = (double)(int)pIVar40->adjoin;\n            if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }" { (expression_statement "uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38);" (assignment_expression "uVar55 = (**(code **)(puVar60 + 0x15379c))(0x38)" identifier = (call_expression "(**(code **)(puVar60 + 0x15379c))(0x38)" (parenthesized_expression "(**(code **)(puVar60 + 0x15379c))" ( (pointer_expression "**(code **)(puVar60 + 0x15379c)" * (pointer_expression "*(code **)(puVar60 + 0x15379c)" * (cast_expression "(code **)(puVar60 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15379c)" ( (binary_expression "puVar60 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x38)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -31000,uVar55)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -31000" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(pIVar40->magick + 0x4c) != 0) {\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_002565f0;\n          }" if (parenthesized_expression "(*(int *)(pIVar40->magick + 0x4c) != 0)" ( (binary_expression "*(int *)(pIVar40->magick + 0x4c) != 0" (pointer_expression "*(int *)(pIVar40->magick + 0x4c)" * (cast_expression "(int *)(pIVar40->magick + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x4c)" ( (binary_expression "pIVar40->magick + 0x4c" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n            pcVar61 = *(code **)(puVar60 + 0x15379c);\n            goto LAB_002565f0;\n          }" { (expression_statement "pcVar61 = *(code **)(puVar60 + 0x15379c);" (assignment_expression "pcVar61 = *(code **)(puVar60 + 0x15379c)" identifier = (pointer_expression "*(code **)(puVar60 + 0x15379c)" * (cast_expression "(code **)(puVar60 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15379c)" ( (binary_expression "puVar60 + 0x15379c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002565f0;" goto statement_identifier ;) })) (labeled_statement "LAB_00255a3c:\n          pcVar61 = *(code **)(puVar60 + 0x15379c);" statement_identifier : (expression_statement "pcVar61 = *(code **)(puVar60 + 0x15379c);" (assignment_expression "pcVar61 = *(code **)(puVar60 + 0x15379c)" identifier = (pointer_expression "*(code **)(puVar60 + 0x15379c)" * (cast_expression "(code **)(puVar60 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15379c)" ( (binary_expression "puVar60 + 0x15379c" identifier + number_literal) ))))) ;)) (if_statement "if (pIVar40->temporary != MagickFalse) {\nLAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);\n            dVar63 = (double)(int)pIVar40->adjoin;\n            if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }" if (parenthesized_expression "(pIVar40->temporary != MagickFalse)" ( (binary_expression "pIVar40->temporary != MagickFalse" (field_expression "pIVar40->temporary" identifier -> field_identifier) != identifier) )) (compound_statement "{\nLAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);\n            dVar63 = (double)(int)pIVar40->adjoin;\n            if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }" { (labeled_statement "LAB_0025663c:\n            uVar55 = (*pcVar61)(0xe);" statement_identifier : (expression_statement "uVar55 = (*pcVar61)(0xe);" (assignment_expression "uVar55 = (*pcVar61)(0xe)" identifier = (call_expression "(*pcVar61)(0xe)" (parenthesized_expression "(*pcVar61)" ( (pointer_expression "*pcVar61" * identifier) )) (argument_list "(0xe)" ( number_literal )))) ;)) (expression_statement "dVar63 = (double)(int)pIVar40->adjoin;" (assignment_expression "dVar63 = (double)(int)pIVar40->adjoin" identifier = (cast_expression "(double)(int)pIVar40->adjoin" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pIVar40->adjoin" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar40->adjoin" identifier -> field_identifier)))) ;) (if_statement "if ((int)pIVar40->adjoin < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }" if (parenthesized_expression "((int)pIVar40->adjoin < 0)" ( (binary_expression "(int)pIVar40->adjoin < 0" (cast_expression "(int)pIVar40->adjoin" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar40->adjoin" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }" { (expression_statement "dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);" (assignment_expression "dVar63 = dVar63 + *(double *)(iVar54 + 0x1418)" identifier = (binary_expression "dVar63 + *(double *)(iVar54 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar54 + 0x1418)" * (cast_expression "(double *)(iVar54 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar54 + 0x1418)" ( (binary_expression "iVar54 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78f8,uVar55,dVar63)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x78f8" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) })) }))) (if_statement "if (pIVar40->stream != (StreamHandler)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x41);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" if (parenthesized_expression "(pIVar40->stream != (StreamHandler)0x0)" ( (binary_expression "pIVar40->stream != (StreamHandler)0x0" (field_expression "pIVar40->stream" identifier -> field_identifier) != (cast_expression "(StreamHandler)0x0" ( (type_descriptor "StreamHandler" type_identifier) ) number_literal)) )) (compound_statement "{\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x41);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" { (expression_statement "uVar55 = (**(code **)(puVar60 + 0x15379c))(0x41);" (assignment_expression "uVar55 = (**(code **)(puVar60 + 0x15379c))(0x41)" identifier = (call_expression "(**(code **)(puVar60 + 0x15379c))(0x41)" (parenthesized_expression "(**(code **)(puVar60 + 0x15379c))" ( (pointer_expression "**(code **)(puVar60 + 0x15379c)" * (pointer_expression "*(code **)(puVar60 + 0x15379c)" * (cast_expression "(code **)(puVar60 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15379c)" ( (binary_expression "puVar60 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x41)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78d8,uVar55)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x78d8" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) })) (expression_statement "dVar71 = *(double *)(pIVar40->magick + 8);" (assignment_expression "dVar71 = *(double *)(pIVar40->magick + 8)" identifier = (pointer_expression "*(double *)(pIVar40->magick + 8)" * (cast_expression "(double *)(pIVar40->magick + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 8)" ( (binary_expression "pIVar40->magick + 8" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "dVar67 = *(double *)(pIVar40->magick + 0x10);" (assignment_expression "dVar67 = *(double *)(pIVar40->magick + 0x10)" identifier = (pointer_expression "*(double *)(pIVar40->magick + 0x10)" * (cast_expression "(double *)(pIVar40->magick + 0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x10)" ( (binary_expression "pIVar40->magick + 0x10" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) ))))) ;) (if_statement "if ((dVar71 != 0.0) || (dVar67 != 0.0)) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n          dVar62 = dVar67;\n        }" if (parenthesized_expression "((dVar71 != 0.0) || (dVar67 != 0.0))" ( (binary_expression "(dVar71 != 0.0) || (dVar67 != 0.0)" (parenthesized_expression "(dVar71 != 0.0)" ( (binary_expression "dVar71 != 0.0" identifier != number_literal) )) || (parenthesized_expression "(dVar67 != 0.0)" ( (binary_expression "dVar67 != 0.0" identifier != number_literal) ))) )) (compound_statement "{\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n          dVar62 = dVar67;\n        }" { (expression_statement "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc);" (call_expression "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78cc)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x78cc" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) (expression_statement "dVar63 = dVar71;" (assignment_expression "dVar63 = dVar71" identifier = identifier) ;) (expression_statement "dVar62 = dVar67;" (assignment_expression "dVar62 = dVar67" identifier = identifier) ;) })) (expression_statement "iVar37 = *(int *)(pIVar40->magick + 0x18);" (assignment_expression "iVar37 = *(int *)(pIVar40->magick + 0x18)" identifier = (pointer_expression "*(int *)(pIVar40->magick + 0x18)" * (cast_expression "(int *)(pIVar40->magick + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x18)" ( (binary_expression "pIVar40->magick + 0x18" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "iVar39 = *(int *)(pIVar40->magick + 0x1c);" (assignment_expression "iVar39 = *(int *)(pIVar40->magick + 0x1c)" identifier = (pointer_expression "*(int *)(pIVar40->magick + 0x1c)" * (cast_expression "(int *)(pIVar40->magick + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x1c)" ( (binary_expression "pIVar40->magick + 0x1c" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "iVar47 = *(int *)(pIVar40->magick + 0x20);" (assignment_expression "iVar47 = *(int *)(pIVar40->magick + 0x20)" identifier = (pointer_expression "*(int *)(pIVar40->magick + 0x20)" * (cast_expression "(int *)(pIVar40->magick + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x20)" ( (binary_expression "pIVar40->magick + 0x20" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(pIVar40->magick + 0x24);" (assignment_expression "iVar28 = *(int *)(pIVar40->magick + 0x24)" identifier = (pointer_expression "*(int *)(pIVar40->magick + 0x24)" * (cast_expression "(int *)(pIVar40->magick + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x24)" ( (binary_expression "pIVar40->magick + 0x24" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) ))))) ;) (if_statement "if ((iVar37 == 0) && (iVar39 == 0)) {\n          if ((iVar47 != 0) || (iVar28 != 0)) {\n            uVar55 = SUB84(dVar63,0);\n            dVar63 = (double)CONCAT44(iVar28,uVar55);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar62 = (double)iVar39;\n          if (iVar39 < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar63 = (double)iVar37;\n          if (iVar37 < 0) {\n            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n          }\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28);\nLAB_00255ed4:\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" if (parenthesized_expression "((iVar37 == 0) && (iVar39 == 0))" ( (binary_expression "(iVar37 == 0) && (iVar39 == 0)" (parenthesized_expression "(iVar37 == 0)" ( (binary_expression "iVar37 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar39 == 0)" ( (binary_expression "iVar39 == 0" identifier == number_literal) ))) )) (compound_statement "{\n          if ((iVar47 != 0) || (iVar28 != 0)) {\n            uVar55 = SUB84(dVar63,0);\n            dVar63 = (double)CONCAT44(iVar28,uVar55);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62);\n            goto LAB_00255ed4;\n          }\n        }" { (if_statement "if ((iVar47 != 0) || (iVar28 != 0)) {\n            uVar55 = SUB84(dVar63,0);\n            dVar63 = (double)CONCAT44(iVar28,uVar55);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62);\n            goto LAB_00255ed4;\n          }" if (parenthesized_expression "((iVar47 != 0) || (iVar28 != 0))" ( (binary_expression "(iVar47 != 0) || (iVar28 != 0)" (parenthesized_expression "(iVar47 != 0)" ( (binary_expression "iVar47 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) ))) )) (compound_statement "{\n            uVar55 = SUB84(dVar63,0);\n            dVar63 = (double)CONCAT44(iVar28,uVar55);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62);\n            goto LAB_00255ed4;\n          }" { (expression_statement "uVar55 = SUB84(dVar63,0);" (assignment_expression "uVar55 = SUB84(dVar63,0)" identifier = (call_expression "SUB84(dVar63,0)" identifier (argument_list "(dVar63,0)" ( identifier , number_literal )))) ;) (expression_statement "dVar63 = (double)CONCAT44(iVar28,uVar55);" (assignment_expression "dVar63 = (double)CONCAT44(iVar28,uVar55)" identifier = (cast_expression "(double)CONCAT44(iVar28,uVar55)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar28,uVar55)" identifier (argument_list "(iVar28,uVar55)" ( identifier , identifier ))))) ;) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7898,iVar47,iVar28,uVar55,\n                       dVar62)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7898" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_00255ed4;" goto statement_identifier ;) })) }) (else_clause "else {\n          dVar62 = (double)iVar39;\n          if (iVar39 < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar63 = (double)iVar37;\n          if (iVar37 < 0) {\n            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n          }\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28);\nLAB_00255ed4:\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" else (compound_statement "{\n          dVar62 = (double)iVar39;\n          if (iVar39 < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar63 = (double)iVar37;\n          if (iVar37 < 0) {\n            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n          }\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28);\nLAB_00255ed4:\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" { (expression_statement "dVar62 = (double)iVar39;" (assignment_expression "dVar62 = (double)iVar39" identifier = (cast_expression "(double)iVar39" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar39 < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }" if (parenthesized_expression "(iVar39 < 0)" ( (binary_expression "iVar39 < 0" identifier < number_literal) )) (compound_statement "{\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }" { (expression_statement "dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);" (assignment_expression "dVar62 = dVar62 + *(double *)(iVar54 + 0x1418)" identifier = (binary_expression "dVar62 + *(double *)(iVar54 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar54 + 0x1418)" * (cast_expression "(double *)(iVar54 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar54 + 0x1418)" ( (binary_expression "iVar54 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar63 = (double)iVar37;" (assignment_expression "dVar63 = (double)iVar37" identifier = (cast_expression "(double)iVar37" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar37 < 0) {\n            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n          }" if (parenthesized_expression "(iVar37 < 0)" ( (binary_expression "iVar37 < 0" identifier < number_literal) )) (compound_statement "{\n            dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n          }" { (expression_statement "dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);" (assignment_expression "dVar63 = dVar63 + *(double *)(iVar54 + 0x1418)" identifier = (binary_expression "dVar63 + *(double *)(iVar54 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar54 + 0x1418)" * (cast_expression "(double *)(iVar54 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar54 + 0x1418)" ( (binary_expression "iVar54 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x78b8,iVar47,dVar63,dVar62,\n                     (double)iVar47,(double)iVar28)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x78b8" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier , (cast_expression "(double)iVar47" ( (type_descriptor "double" primitive_type) ) identifier) , (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) (labeled_statement "LAB_00255ed4:\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" statement_identifier : (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;)) }))) (expression_statement "iVar28 = *(int *)(pIVar40->magick + 0x8c);" (assignment_expression "iVar28 = *(int *)(pIVar40->magick + 0x8c)" identifier = (pointer_expression "*(int *)(pIVar40->magick + 0x8c)" * (cast_expression "(int *)(pIVar40->magick + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x8c)" ( (binary_expression "pIVar40->magick + 0x8c" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) ))))) ;) (if_statement "if ((*(int *)(pIVar40->magick + 0x88) != 0) ||\n           (pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0)) {\n          dVar63 = (double)CONCAT44(iVar28,SUB84(dVar63,0));\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,\n                     *(int *)(pIVar40->magick + 0x88),iVar28);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pcVar61 = *(code **)(puVar60 + 0x153eac);\n        }" if (parenthesized_expression "((*(int *)(pIVar40->magick + 0x88) != 0) ||\n           (pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0))" ( (binary_expression "(*(int *)(pIVar40->magick + 0x88) != 0) ||\n           (pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0)" (parenthesized_expression "(*(int *)(pIVar40->magick + 0x88) != 0)" ( (binary_expression "*(int *)(pIVar40->magick + 0x88) != 0" (pointer_expression "*(int *)(pIVar40->magick + 0x88)" * (cast_expression "(int *)(pIVar40->magick + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x88)" ( (binary_expression "pIVar40->magick + 0x88" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0)" ( (comma_expression "pcVar61 = *(code **)(puVar60 + 0x153eac), iVar28 != 0" (assignment_expression "pcVar61 = *(code **)(puVar60 + 0x153eac)" identifier = (pointer_expression "*(code **)(puVar60 + 0x153eac)" * (cast_expression "(code **)(puVar60 + 0x153eac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153eac)" ( (binary_expression "puVar60 + 0x153eac" identifier + number_literal) ))))) , (binary_expression "iVar28 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          dVar63 = (double)CONCAT44(iVar28,SUB84(dVar63,0));\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,\n                     *(int *)(pIVar40->magick + 0x88),iVar28);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pcVar61 = *(code **)(puVar60 + 0x153eac);\n        }" { (expression_statement "dVar63 = (double)CONCAT44(iVar28,SUB84(dVar63,0));" (assignment_expression "dVar63 = (double)CONCAT44(iVar28,SUB84(dVar63,0))" identifier = (cast_expression "(double)CONCAT44(iVar28,SUB84(dVar63,0))" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar28,SUB84(dVar63,0))" identifier (argument_list "(iVar28,SUB84(dVar63,0))" ( identifier , (call_expression "SUB84(dVar63,0)" identifier (argument_list "(dVar63,0)" ( identifier , number_literal ))) ))))) ;) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,\n                     *(int *)(pIVar40->magick + 0x88),iVar28);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,\n                     *(int *)(pIVar40->magick + 0x88),iVar28)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7888,\n                     *(int *)(pIVar40->magick + 0x88),iVar28)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7888" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(int *)(pIVar40->magick + 0x88)" * (cast_expression "(int *)(pIVar40->magick + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x88)" ( (binary_expression "pIVar40->magick + 0x88" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))) , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) (expression_statement "pcVar61 = *(code **)(puVar60 + 0x153eac);" (assignment_expression "pcVar61 = *(code **)(puVar60 + 0x153eac)" identifier = (pointer_expression "*(code **)(puVar60 + 0x153eac)" * (cast_expression "(code **)(puVar60 + 0x153eac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153eac)" ( (binary_expression "puVar60 + 0x153eac" identifier + number_literal) ))))) ;) })) (expression_statement "iVar28 = (*pcVar61)(pIVar40);" (assignment_expression "iVar28 = (*pcVar61)(pIVar40)" identifier = (call_expression "(*pcVar61)(pIVar40)" (parenthesized_expression "(*pcVar61)" ( (pointer_expression "*pcVar61" * identifier) )) (argument_list "(pIVar40)" ( identifier )))) ;) (expression_statement "iVar37 = *(int *)(pIVar40->magick + 0x5c);" (assignment_expression "iVar37 = *(int *)(pIVar40->magick + 0x5c)" identifier = (pointer_expression "*(int *)(pIVar40->magick + 0x5c)" * (cast_expression "(int *)(pIVar40->magick + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x5c)" ( (binary_expression "pIVar40->magick + 0x5c" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) ))))) ;) (if_statement "if (iVar28 == 0) {\n          iVar28 = (**(code **)(puVar60 + 0x1536e8))(pIVar40);\n          if (iVar28 != 0) goto LAB_00255b3c;\n          if (iVar37 != 0) {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x6c);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x60);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          if (*(int *)(pIVar40->magick + 0x68) != 100) {\n            dVar63 = (double)*(int *)(pIVar40->magick + 0x68);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);\n          if (*(int *)(pIVar40->magick + 0x6c) < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar71 = (double)*(int *)(pIVar40->magick + 0x60);\n          if (*(int *)(pIVar40->magick + 0x60) < 0) {\n            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n          }\n          if (iVar37 == 0) {\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);\n            dVar63 = dVar62;\n            dVar62 = dVar71;\n          }\n          else {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar28 = (**(code **)(puVar60 + 0x1536e8))(pIVar40);\n          if (iVar28 != 0) goto LAB_00255b3c;\n          if (iVar37 != 0) {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x6c);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          iVar28 = *(int *)(pIVar40->magick + 0x60);\n          if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n          if (*(int *)(pIVar40->magick + 0x68) != 100) {\n            dVar63 = (double)*(int *)(pIVar40->magick + 0x68);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }\n        }" { (expression_statement "iVar28 = (**(code **)(puVar60 + 0x1536e8))(pIVar40);" (assignment_expression "iVar28 = (**(code **)(puVar60 + 0x1536e8))(pIVar40)" identifier = (call_expression "(**(code **)(puVar60 + 0x1536e8))(pIVar40)" (parenthesized_expression "(**(code **)(puVar60 + 0x1536e8))" ( (pointer_expression "**(code **)(puVar60 + 0x1536e8)" * (pointer_expression "*(code **)(puVar60 + 0x1536e8)" * (cast_expression "(code **)(puVar60 + 0x1536e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1536e8)" ( (binary_expression "puVar60 + 0x1536e8" identifier + number_literal) ))))) )) (argument_list "(pIVar40)" ( identifier )))) ;) (if_statement "if (iVar28 != 0) goto LAB_00255b3c;" if (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00255b3c;" goto statement_identifier ;)) (if_statement "if (iVar37 != 0) {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }" if (parenthesized_expression "(iVar37 != 0)" ( (binary_expression "iVar37 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }" { (expression_statement "dVar63 = (double)iVar37;" (assignment_expression "dVar63 = (double)iVar37" identifier = (cast_expression "(double)iVar37" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }" if (parenthesized_expression "(iVar37 < 0)" ( (binary_expression "iVar37 < 0" identifier < number_literal) )) (compound_statement "{\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }" { (expression_statement "dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);" (assignment_expression "dVar63 = dVar63 + *(double *)(iVar54 + 0x1418)" identifier = (binary_expression "dVar63 + *(double *)(iVar54 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar54 + 0x1418)" * (cast_expression "(double *)(iVar54 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar54 + 0x1418)" ( (binary_expression "iVar54 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77f4)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x77f4" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) })) (expression_statement "iVar28 = *(int *)(pIVar40->magick + 0x6c);" (assignment_expression "iVar28 = *(int *)(pIVar40->magick + 0x6c)" identifier = (pointer_expression "*(int *)(pIVar40->magick + 0x6c)" * (cast_expression "(int *)(pIVar40->magick + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x6c)" ( (binary_expression "pIVar40->magick + 0x6c" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) ))))) ;) (if_statement "if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }" if (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }" { (expression_statement "dVar63 = (double)iVar28;" (assignment_expression "dVar63 = (double)iVar28" identifier = (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }" if (parenthesized_expression "(iVar28 < 0)" ( (binary_expression "iVar28 < 0" identifier < number_literal) )) (compound_statement "{\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }" { (expression_statement "dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);" (assignment_expression "dVar63 = dVar63 + *(double *)(iVar54 + 0x1418)" identifier = (binary_expression "dVar63 + *(double *)(iVar54 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar54 + 0x1418)" * (cast_expression "(double *)(iVar54 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar54 + 0x1418)" ( (binary_expression "iVar54 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77e4)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x77e4" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) })) (expression_statement "iVar28 = *(int *)(pIVar40->magick + 0x60);" (assignment_expression "iVar28 = *(int *)(pIVar40->magick + 0x60)" identifier = (pointer_expression "*(int *)(pIVar40->magick + 0x60)" * (cast_expression "(int *)(pIVar40->magick + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x60)" ( (binary_expression "pIVar40->magick + 0x60" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) ))))) ;) (if_statement "if (iVar28 != 0) {\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }" if (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar63 = (double)iVar28;\n            if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }" { (expression_statement "dVar63 = (double)iVar28;" (assignment_expression "dVar63 = (double)iVar28" identifier = (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar28 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }" if (parenthesized_expression "(iVar28 < 0)" ( (binary_expression "iVar28 < 0" identifier < number_literal) )) (compound_statement "{\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }" { (expression_statement "dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);" (assignment_expression "dVar63 = dVar63 + *(double *)(iVar54 + 0x1418)" identifier = (binary_expression "dVar63 + *(double *)(iVar54 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar54 + 0x1418)" * (cast_expression "(double *)(iVar54 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar54 + 0x1418)" ( (binary_expression "iVar54 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77d0)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x77d0" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(pIVar40->magick + 0x68) != 100) {\n            dVar63 = (double)*(int *)(pIVar40->magick + 0x68);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }" if (parenthesized_expression "(*(int *)(pIVar40->magick + 0x68) != 100)" ( (binary_expression "*(int *)(pIVar40->magick + 0x68) != 100" (pointer_expression "*(int *)(pIVar40->magick + 0x68)" * (cast_expression "(int *)(pIVar40->magick + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x68)" ( (binary_expression "pIVar40->magick + 0x68" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n            dVar63 = (double)*(int *)(pIVar40->magick + 0x68);\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          }" { (expression_statement "dVar63 = (double)*(int *)(pIVar40->magick + 0x68);" (assignment_expression "dVar63 = (double)*(int *)(pIVar40->magick + 0x68)" identifier = (cast_expression "(double)*(int *)(pIVar40->magick + 0x68)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(pIVar40->magick + 0x68)" * (cast_expression "(int *)(pIVar40->magick + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x68)" ( (binary_expression "pIVar40->magick + 0x68" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))))) ;) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x780c)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x780c" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) })) }) (else_clause "else {\nLAB_00255b3c:\n          dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);\n          if (*(int *)(pIVar40->magick + 0x6c) < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar71 = (double)*(int *)(pIVar40->magick + 0x60);\n          if (*(int *)(pIVar40->magick + 0x60) < 0) {\n            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n          }\n          if (iVar37 == 0) {\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);\n            dVar63 = dVar62;\n            dVar62 = dVar71;\n          }\n          else {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" else (compound_statement "{\nLAB_00255b3c:\n          dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);\n          if (*(int *)(pIVar40->magick + 0x6c) < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }\n          dVar71 = (double)*(int *)(pIVar40->magick + 0x60);\n          if (*(int *)(pIVar40->magick + 0x60) < 0) {\n            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n          }\n          if (iVar37 == 0) {\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);\n            dVar63 = dVar62;\n            dVar62 = dVar71;\n          }\n          else {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" { (labeled_statement "LAB_00255b3c:\n          dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);" statement_identifier : (expression_statement "dVar62 = (double)*(int *)(pIVar40->magick + 0x6c);" (assignment_expression "dVar62 = (double)*(int *)(pIVar40->magick + 0x6c)" identifier = (cast_expression "(double)*(int *)(pIVar40->magick + 0x6c)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(pIVar40->magick + 0x6c)" * (cast_expression "(int *)(pIVar40->magick + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x6c)" ( (binary_expression "pIVar40->magick + 0x6c" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))))) ;)) (if_statement "if (*(int *)(pIVar40->magick + 0x6c) < 0) {\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }" if (parenthesized_expression "(*(int *)(pIVar40->magick + 0x6c) < 0)" ( (binary_expression "*(int *)(pIVar40->magick + 0x6c) < 0" (pointer_expression "*(int *)(pIVar40->magick + 0x6c)" * (cast_expression "(int *)(pIVar40->magick + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x6c)" ( (binary_expression "pIVar40->magick + 0x6c" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))) < number_literal) )) (compound_statement "{\n            dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);\n          }" { (expression_statement "dVar62 = dVar62 + *(double *)(iVar54 + 0x1418);" (assignment_expression "dVar62 = dVar62 + *(double *)(iVar54 + 0x1418)" identifier = (binary_expression "dVar62 + *(double *)(iVar54 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar54 + 0x1418)" * (cast_expression "(double *)(iVar54 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar54 + 0x1418)" ( (binary_expression "iVar54 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar71 = (double)*(int *)(pIVar40->magick + 0x60);" (assignment_expression "dVar71 = (double)*(int *)(pIVar40->magick + 0x60)" identifier = (cast_expression "(double)*(int *)(pIVar40->magick + 0x60)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(pIVar40->magick + 0x60)" * (cast_expression "(int *)(pIVar40->magick + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x60)" ( (binary_expression "pIVar40->magick + 0x60" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))))) ;) (if_statement "if (*(int *)(pIVar40->magick + 0x60) < 0) {\n            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n          }" if (parenthesized_expression "(*(int *)(pIVar40->magick + 0x60) < 0)" ( (binary_expression "*(int *)(pIVar40->magick + 0x60) < 0" (pointer_expression "*(int *)(pIVar40->magick + 0x60)" * (cast_expression "(int *)(pIVar40->magick + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x60)" ( (binary_expression "pIVar40->magick + 0x60" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))) < number_literal) )) (compound_statement "{\n            dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);\n          }" { (expression_statement "dVar71 = dVar71 + *(double *)(iVar54 + 0x1418);" (assignment_expression "dVar71 = dVar71 + *(double *)(iVar54 + 0x1418)" identifier = (binary_expression "dVar71 + *(double *)(iVar54 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar54 + 0x1418)" * (cast_expression "(double *)(iVar54 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar54 + 0x1418)" ( (binary_expression "iVar54 + 0x1418" identifier + number_literal) )))))) ;) })) (if_statement "if (iVar37 == 0) {\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);\n            dVar63 = dVar62;\n            dVar62 = dVar71;\n          }\n          else {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }" if (parenthesized_expression "(iVar37 == 0)" ( (binary_expression "iVar37 == 0" identifier == number_literal) )) (compound_statement "{\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);\n            dVar63 = dVar62;\n            dVar62 = dVar71;\n          }" { (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7870)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7870" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "dVar63 = dVar62;" (assignment_expression "dVar63 = dVar62" identifier = identifier) ;) (expression_statement "dVar62 = dVar71;" (assignment_expression "dVar62 = dVar71" identifier = identifier) ;) }) (else_clause "else {\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }" else (compound_statement "{\n            dVar63 = (double)iVar37;\n            if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }\n            (**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);\n          }" { (expression_statement "dVar63 = (double)iVar37;" (assignment_expression "dVar63 = (double)iVar37" identifier = (cast_expression "(double)iVar37" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar37 < 0) {\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }" if (parenthesized_expression "(iVar37 < 0)" ( (binary_expression "iVar37 < 0" identifier < number_literal) )) (compound_statement "{\n              dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);\n            }" { (expression_statement "dVar63 = dVar63 + *(double *)(iVar54 + 0x1418);" (assignment_expression "dVar63 = dVar63 + *(double *)(iVar54 + 0x1418)" identifier = (binary_expression "dVar63 + *(double *)(iVar54 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar54 + 0x1418)" * (cast_expression "(double *)(iVar54 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar54 + 0x1418)" ( (binary_expression "iVar54 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                      (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7838)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7838" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) }))) (if_statement "if (*(int *)(pIVar40->magick + 0x50) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x21);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" if (parenthesized_expression "(*(int *)(pIVar40->magick + 0x50) != 0)" ( (binary_expression "*(int *)(pIVar40->magick + 0x50) != 0" (pointer_expression "*(int *)(pIVar40->magick + 0x50)" * (cast_expression "(int *)(pIVar40->magick + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x50)" ( (binary_expression "pIVar40->magick + 0x50" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x21);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" { (expression_statement "uVar55 = (**(code **)(puVar60 + 0x15379c))(0x21);" (assignment_expression "uVar55 = (**(code **)(puVar60 + 0x15379c))(0x21)" identifier = (call_expression "(**(code **)(puVar60 + 0x15379c))(0x21)" (parenthesized_expression "(**(code **)(puVar60 + 0x15379c))" ( (pointer_expression "**(code **)(puVar60 + 0x15379c)" * (pointer_expression "*(code **)(puVar60 + 0x15379c)" * (cast_expression "(code **)(puVar60 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15379c)" ( (binary_expression "puVar60 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x21)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77c0,uVar55,dVar63)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x77c0" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(pIVar40->magick + 0x58) != 0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x15);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" if (parenthesized_expression "(*(int *)(pIVar40->magick + 0x58) != 0)" ( (binary_expression "*(int *)(pIVar40->magick + 0x58) != 0" (pointer_expression "*(int *)(pIVar40->magick + 0x58)" * (cast_expression "(int *)(pIVar40->magick + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->magick + 0x58)" ( (binary_expression "pIVar40->magick + 0x58" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x15);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" { (expression_statement "uVar55 = (**(code **)(puVar60 + 0x15379c))(0x15);" (assignment_expression "uVar55 = (**(code **)(puVar60 + 0x15379c))(0x15)" identifier = (call_expression "(**(code **)(puVar60 + 0x15379c))(0x15)" (parenthesized_expression "(**(code **)(puVar60 + 0x15379c))" ( (pointer_expression "**(code **)(puVar60 + 0x15379c)" * (pointer_expression "*(code **)(puVar60 + 0x15379c)" * (cast_expression "(code **)(puVar60 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15379c)" ( (binary_expression "puVar60 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x15)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77b4,uVar55)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x77b4" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) })) (if_statement "if (pIVar40->client_data != (void *)0x0) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x23);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" if (parenthesized_expression "(pIVar40->client_data != (void *)0x0)" ( (binary_expression "pIVar40->client_data != (void *)0x0" (field_expression "pIVar40->client_data" identifier -> field_identifier) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x23);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" { (expression_statement "uVar55 = (**(code **)(puVar60 + 0x15379c))(0x23);" (assignment_expression "uVar55 = (**(code **)(puVar60 + 0x15379c))(0x23)" identifier = (call_expression "(**(code **)(puVar60 + 0x15379c))(0x23)" (parenthesized_expression "(**(code **)(puVar60 + 0x15379c))" ( (pointer_expression "**(code **)(puVar60 + 0x15379c)" * (pointer_expression "*(code **)(puVar60 + 0x15379c)" * (cast_expression "(code **)(puVar60 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15379c)" ( (binary_expression "puVar60 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x23)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x77a8,uVar55)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x77a8" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) })) (expression_statement "dVar71 = (double)(pIVar40->transparent_color).count;" (assignment_expression "dVar71 = (double)(pIVar40->transparent_color).count" identifier = (cast_expression "(double)(pIVar40->transparent_color).count" ( (type_descriptor "double" primitive_type) ) (field_expression "(pIVar40->transparent_color).count" (parenthesized_expression "(pIVar40->transparent_color)" ( (field_expression "pIVar40->transparent_color" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (dVar71 != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n        }" if (parenthesized_expression "(dVar71 != 0.0)" ( (binary_expression "dVar71 != 0.0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar63 = dVar71;\n        }" { (expression_statement "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790);" (call_expression "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7790)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7790" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) (expression_statement "dVar63 = dVar71;" (assignment_expression "dVar63 = dVar71" identifier = identifier) ;) })) (if_statement "if (*(double *)&pIVar40->verbose != 0.0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar62 = *(double *)&pIVar40->options;\n          dVar63 = *(double *)&pIVar40->verbose;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" if (parenthesized_expression "(*(double *)&pIVar40->verbose != 0.0)" ( (binary_expression "*(double *)&pIVar40->verbose != 0.0" (pointer_expression "*(double *)&pIVar40->verbose" * (cast_expression "(double *)&pIVar40->verbose" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar40->verbose" & (field_expression "pIVar40->verbose" identifier -> field_identifier)))) != number_literal) )) (compound_statement "{\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          dVar62 = *(double *)&pIVar40->options;\n          dVar63 = *(double *)&pIVar40->verbose;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" { (expression_statement "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784);" (call_expression "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7784)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7784" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) (expression_statement "dVar62 = *(double *)&pIVar40->options;" (assignment_expression "dVar62 = *(double *)&pIVar40->options" identifier = (pointer_expression "*(double *)&pIVar40->options" * (cast_expression "(double *)&pIVar40->options" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar40->options" & (field_expression "pIVar40->options" identifier -> field_identifier))))) ;) (expression_statement "dVar63 = *(double *)&pIVar40->verbose;" (assignment_expression "dVar63 = *(double *)&pIVar40->verbose" identifier = (pointer_expression "*(double *)&pIVar40->verbose" * (cast_expression "(double *)&pIVar40->verbose" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar40->verbose" & (field_expression "pIVar40->verbose" identifier -> field_identifier))))) ;) (expression_statement "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748);" (call_expression "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7748)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7748" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) })) (if_statement "if (pIVar40->affirm != MagickFalse) {\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x36);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" if (parenthesized_expression "(pIVar40->affirm != MagickFalse)" ( (binary_expression "pIVar40->affirm != MagickFalse" (field_expression "pIVar40->affirm" identifier -> field_identifier) != identifier) )) (compound_statement "{\n          uVar55 = (**(code **)(puVar60 + 0x15379c))(0x36);\n          (**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" { (expression_statement "uVar55 = (**(code **)(puVar60 + 0x15379c))(0x36);" (assignment_expression "uVar55 = (**(code **)(puVar60 + 0x15379c))(0x36)" identifier = (call_expression "(**(code **)(puVar60 + 0x15379c))(0x36)" (parenthesized_expression "(**(code **)(puVar60 + 0x15379c))" ( (pointer_expression "**(code **)(puVar60 + 0x15379c)" * (pointer_expression "*(code **)(puVar60 + 0x15379c)" * (cast_expression "(code **)(puVar60 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15379c)" ( (binary_expression "puVar60 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x36)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62);" (call_expression "(**(code **)(puVar60 + 0x1537b8))\n                    (ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7734,uVar55,dVar63,dVar62)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7734" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) })) (if_statement "if (pIVar40->cache == (void *)0x0) {\nLAB_00255c28:\n          pFVar12 = pIVar40->file;\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          if (iVar28 == 0) goto LAB_00255c28;\n          iVar37 = *(int *)(puVar60 + 0x153388);\n          do {\n            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          } while (iVar28 != 0);\n          pFVar12 = pIVar40->file;\n        }" if (parenthesized_expression "(pIVar40->cache == (void *)0x0)" ( (binary_expression "pIVar40->cache == (void *)0x0" (field_expression "pIVar40->cache" identifier -> field_identifier) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00255c28:\n          pFVar12 = pIVar40->file;\n        }" { (labeled_statement "LAB_00255c28:\n          pFVar12 = pIVar40->file;" statement_identifier : (expression_statement "pFVar12 = pIVar40->file;" (assignment_expression "pFVar12 = pIVar40->file" identifier = (field_expression "pIVar40->file" identifier -> field_identifier)) ;)) }) (else_clause "else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          if (iVar28 == 0) goto LAB_00255c28;\n          iVar37 = *(int *)(puVar60 + 0x153388);\n          do {\n            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          } while (iVar28 != 0);\n          pFVar12 = pIVar40->file;\n        }" else (compound_statement "{\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          if (iVar28 == 0) goto LAB_00255c28;\n          iVar37 = *(int *)(puVar60 + 0x153388);\n          do {\n            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          } while (iVar28 != 0);\n          pFVar12 = pIVar40->file;\n        }" { (expression_statement "(**(code **)(puVar60 + 0x1538c8))(pIVar40);" (call_expression "(**(code **)(puVar60 + 0x1538c8))(pIVar40)" (parenthesized_expression "(**(code **)(puVar60 + 0x1538c8))" ( (pointer_expression "**(code **)(puVar60 + 0x1538c8)" * (pointer_expression "*(code **)(puVar60 + 0x1538c8)" * (cast_expression "(code **)(puVar60 + 0x1538c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1538c8)" ( (binary_expression "puVar60 + 0x1538c8" identifier + number_literal) ))))) )) (argument_list "(pIVar40)" ( identifier ))) ;) (expression_statement "iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);" (assignment_expression "iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40)" identifier = (call_expression "(**(code **)(puVar60 + 0x153948))(pIVar40)" (parenthesized_expression "(**(code **)(puVar60 + 0x153948))" ( (pointer_expression "**(code **)(puVar60 + 0x153948)" * (pointer_expression "*(code **)(puVar60 + 0x153948)" * (cast_expression "(code **)(puVar60 + 0x153948)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153948)" ( (binary_expression "puVar60 + 0x153948" identifier + number_literal) ))))) )) (argument_list "(pIVar40)" ( identifier )))) ;) (if_statement "if (iVar28 == 0) goto LAB_00255c28;" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00255c28;" goto statement_identifier ;)) (expression_statement "iVar37 = *(int *)(puVar60 + 0x153388);" (assignment_expression "iVar37 = *(int *)(puVar60 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) ))))) ;) (do_statement "do {\n            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          } while (iVar28 != 0);" do (compound_statement "{\n            iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n          }" { (expression_statement "iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);" (assignment_expression "iVar39 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28)" identifier = (call_expression "(**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28)" (parenthesized_expression "(**(code **)(puVar60 + 0x153e14))" ( (pointer_expression "**(code **)(puVar60 + 0x153e14)" * (pointer_expression "*(code **)(puVar60 + 0x153e14)" * (cast_expression "(code **)(puVar60 + 0x153e14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153e14)" ( (binary_expression "puVar60 + 0x153e14" identifier + number_literal) ))))) )) (argument_list "(pIVar40,iVar28)" ( identifier , identifier )))) ;) (if_statement "if (iVar39 != 0) {\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }" if (parenthesized_expression "(iVar39 != 0)" ( (binary_expression "iVar39 != 0" identifier != number_literal) )) (compound_statement "{\n              (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);\n              (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n            }" { (expression_statement "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28);" (call_expression "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar37 + -0x7724,iVar28)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,iVar37 + -0x7724,iVar28)" ( identifier , number_literal , (binary_expression "iVar37 + -0x7724" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) })) (expression_statement "iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);" (assignment_expression "iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40)" identifier = (call_expression "(**(code **)(puVar60 + 0x153948))(pIVar40)" (parenthesized_expression "(**(code **)(puVar60 + 0x153948))" ( (pointer_expression "**(code **)(puVar60 + 0x153948)" * (pointer_expression "*(code **)(puVar60 + 0x153948)" * (cast_expression "(code **)(puVar60 + 0x153948)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153948)" ( (binary_expression "puVar60 + 0x153948" identifier + number_literal) ))))) )) (argument_list "(pIVar40)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) ;) (expression_statement "pFVar12 = pIVar40->file;" (assignment_expression "pFVar12 = pIVar40->file" identifier = (field_expression "pIVar40->file" identifier -> field_identifier)) ;) }))) (if_statement "if (pFVar12 != (FILE *)0x0) {\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" if (parenthesized_expression "(pFVar12 != (FILE *)0x0)" ( (binary_expression "pFVar12 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n        }" { (expression_statement "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718);" (call_expression "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,*(int *)(puVar60 + 0x153388) + -0x7718)" ( identifier , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7718" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) })) (expression_statement "(**(code **)(puVar60 + 0x1536d0))(pIVar40);" (call_expression "(**(code **)(puVar60 + 0x1536d0))(pIVar40)" (parenthesized_expression "(**(code **)(puVar60 + 0x1536d0))" ( (pointer_expression "**(code **)(puVar60 + 0x1536d0)" * (pointer_expression "*(code **)(puVar60 + 0x1536d0)" * (cast_expression "(code **)(puVar60 + 0x1536d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1536d0)" ( (binary_expression "puVar60 + 0x1536d0" identifier + number_literal) ))))) )) (argument_list "(pIVar40)" ( identifier ))) ;) (expression_statement "pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);" (assignment_expression "pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40)" identifier = (cast_expression "(FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar60 + 0x1542fc))(pIVar40)" (parenthesized_expression "(**(code **)(puVar60 + 0x1542fc))" ( (pointer_expression "**(code **)(puVar60 + 0x1542fc)" * (pointer_expression "*(code **)(puVar60 + 0x1542fc)" * (cast_expression "(code **)(puVar60 + 0x1542fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1542fc)" ( (binary_expression "puVar60 + 0x1542fc" identifier + number_literal) ))))) )) (argument_list "(pIVar40)" ( identifier ))))) ;) (if_statement "if (pFVar29 != (FILE *)0x0) {\n          iVar28 = *(int *)(puVar60 + 0x153388);\nLAB_00255c90:\n          pFVar12 = pFVar29;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pbVar30 = (byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45);\n          if (pbVar30 != (byte *)0x0) {\n            iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);\n            if (iVar37 != 0) {\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n            iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n            if (iVar39 == 0) {\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }" if (parenthesized_expression "(pFVar29 != (FILE *)0x0)" ( (binary_expression "pFVar29 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar28 = *(int *)(puVar60 + 0x153388);\nLAB_00255c90:\n          pFVar12 = pFVar29;\n          (**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29);\n          (**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);\n          pbVar30 = (byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45);\n          if (pbVar30 != (byte *)0x0) {\n            iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);\n            if (iVar37 != 0) {\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n            iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n            if (iVar39 == 0) {\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }" { (expression_statement "iVar28 = *(int *)(puVar60 + 0x153388);" (assignment_expression "iVar28 = *(int *)(puVar60 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00255c90:\n          pFVar12 = pFVar29;" statement_identifier : (expression_statement "pFVar12 = pFVar29;" (assignment_expression "pFVar12 = pFVar29" identifier = identifier) ;)) (expression_statement "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29);" (call_expression "(**(code **)(puVar60 + 0x1537b8))(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29)" (parenthesized_expression "(**(code **)(puVar60 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar60 + 0x1537b8)" * (pointer_expression "*(code **)(puVar60 + 0x1537b8)" * (cast_expression "(code **)(puVar60 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537b8)" ( (binary_expression "puVar60 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(ppcVar53,0x1000,iVar28 + -0x7c80,pFVar29)" ( identifier , number_literal , (binary_expression "iVar28 + -0x7c80" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,ppcVar53)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,ppcVar53)" ( identifier , identifier ))) ;) (expression_statement "pbVar30 = (byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45);" (assignment_expression "pbVar30 = (byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45)" identifier = (cast_expression "(byte *)(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar60 + 0x153e38))(pIVar40,pFVar29,pFVar45)" (parenthesized_expression "(**(code **)(puVar60 + 0x153e38))" ( (pointer_expression "**(code **)(puVar60 + 0x153e38)" * (pointer_expression "*(code **)(puVar60 + 0x153e38)" * (cast_expression "(code **)(puVar60 + 0x153e38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153e38)" ( (binary_expression "puVar60 + 0x153e38" identifier + number_literal) ))))) )) (argument_list "(pIVar40,pFVar29,pFVar45)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (pbVar30 != (byte *)0x0) {\n            iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);\n            if (iVar37 != 0) {\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n            iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n            if (iVar39 == 0) {\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }" if (parenthesized_expression "(pbVar30 != (byte *)0x0)" ( (binary_expression "pbVar30 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);\n            if (iVar37 != 0) {\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n            iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n            if (iVar39 == 0) {\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }" { (expression_statement "iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30);" (assignment_expression "iVar37 = (**(code **)(puVar60 + 0x153d74))(pbVar30)" identifier = (call_expression "(**(code **)(puVar60 + 0x153d74))(pbVar30)" (parenthesized_expression "(**(code **)(puVar60 + 0x153d74))" ( (pointer_expression "**(code **)(puVar60 + 0x153d74)" * (pointer_expression "*(code **)(puVar60 + 0x153d74)" * (cast_expression "(code **)(puVar60 + 0x153d74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153d74)" ( (binary_expression "puVar60 + 0x153d74" identifier + number_literal) ))))) )) (argument_list "(pbVar30)" ( identifier )))) ;) (if_statement "if (iVar37 != 0) {\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }" if (parenthesized_expression "(iVar37 != 0)" ( (binary_expression "iVar37 != 0" identifier != number_literal) )) (compound_statement "{\n              piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();\n              iVar39 = 0;\n              pbVar59 = pbVar30;\n              do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);\n              (**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);\n              goto LAB_00255d60;\n            }" { (expression_statement "piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))();" (assignment_expression "piVar31 = (int *)(**(code **)(puVar60 + 0x153e70))()" identifier = (cast_expression "(int *)(**(code **)(puVar60 + 0x153e70))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar60 + 0x153e70))()" (parenthesized_expression "(**(code **)(puVar60 + 0x153e70))" ( (pointer_expression "**(code **)(puVar60 + 0x153e70)" * (pointer_expression "*(code **)(puVar60 + 0x153e70)" * (cast_expression "(code **)(puVar60 + 0x153e70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153e70)" ( (binary_expression "puVar60 + 0x153e70" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar39 = 0;" (assignment_expression "iVar39 = 0" identifier = number_literal) ;) (expression_statement "pbVar59 = pbVar30;" (assignment_expression "pbVar59 = pbVar30" identifier = identifier) ;) (do_statement "do {\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              } while (iVar47 != iVar37);" do (compound_statement "{\n                iVar47 = iVar39 + 1;\n                if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar59 = pbVar59 + 1;\n                iVar39 = iVar47;\n              }" { (expression_statement "iVar47 = iVar39 + 1;" (assignment_expression "iVar47 = iVar39 + 1" identifier = (binary_expression "iVar39 + 1" identifier + number_literal)) ;) (if_statement "if ((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0) {\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }" if (parenthesized_expression "((*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0)" ( (binary_expression "(*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar31 + (uint)*pbVar59 * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar31 + (uint)*pbVar59 * 2)" * (cast_expression "(ushort *)(*piVar31 + (uint)*pbVar59 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar31 + (uint)*pbVar59 * 2)" ( (binary_expression "*piVar31 + (uint)*pbVar59 * 2" (pointer_expression "*piVar31" * identifier) + (binary_expression "(uint)*pbVar59 * 2" (binary_expression "(uint)*pbVar59" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }" { (if_statement "if (iVar39 != iVar37) {\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }" if (parenthesized_expression "(iVar39 != iVar37)" ( (binary_expression "iVar39 != iVar37" identifier != identifier) )) (compound_statement "{\n                    pbVar59 = pbVar30 + iVar37;\n                    (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);\n                    iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);\n                    if (iVar39 != 0) goto LAB_00255f3c;\n                    pcVar61 = *(code **)(puVar60 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }" { (expression_statement "pbVar59 = pbVar30 + iVar37;" (assignment_expression "pbVar59 = pbVar30 + iVar37" identifier = (binary_expression "pbVar30 + iVar37" identifier + identifier)) ;) (expression_statement "(**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);" (call_expression "(**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b)" (parenthesized_expression "(**(code **)(puVar60 + 0x153a18))" ( (pointer_expression "**(code **)(puVar60 + 0x153a18)" * (pointer_expression "*(code **)(puVar60 + 0x153a18)" * (cast_expression "(code **)(puVar60 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153a18)" ( (binary_expression "puVar60 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(pIVar40,0x7b)" ( identifier , number_literal ))) ;) (expression_statement "iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);" (assignment_expression "iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d)" identifier = (call_expression "(**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d)" (parenthesized_expression "(**(code **)(puVar60 + 0x1541c4))" ( (pointer_expression "**(code **)(puVar60 + 0x1541c4)" * (pointer_expression "*(code **)(puVar60 + 0x1541c4)" * (cast_expression "(code **)(puVar60 + 0x1541c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1541c4)" ( (binary_expression "puVar60 + 0x1541c4" identifier + number_literal) ))))) )) (argument_list "(pbVar30,0x7d)" ( identifier , number_literal )))) ;) (if_statement "if (iVar39 != 0) goto LAB_00255f3c;" if (parenthesized_expression "(iVar39 != 0)" ( (binary_expression "iVar39 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00255f3c;" goto statement_identifier ;)) (expression_statement "pcVar61 = *(code **)(puVar60 + 0x1543d0);" (assignment_expression "pcVar61 = *(code **)(puVar60 + 0x1543d0)" identifier = (pointer_expression "*(code **)(puVar60 + 0x1543d0)" * (cast_expression "(code **)(puVar60 + 0x1543d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1543d0)" ( (binary_expression "puVar60 + 0x1543d0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00255fc0;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "pbVar59 = pbVar59 + 1;" (assignment_expression "pbVar59 = pbVar59 + 1" identifier = (binary_expression "pbVar59 + 1" identifier + number_literal)) ;) (expression_statement "iVar39 = iVar47;" (assignment_expression "iVar39 = iVar47" identifier = identifier) ;) }) while (parenthesized_expression "(iVar47 != iVar37)" ( (binary_expression "iVar47 != iVar37" identifier != identifier) )) ;) (expression_statement "(**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30);" (call_expression "(**(code **)(puVar60 + 0x1543d0))(pIVar40,iVar37,pbVar30)" (parenthesized_expression "(**(code **)(puVar60 + 0x1543d0))" ( (pointer_expression "**(code **)(puVar60 + 0x1543d0)" * (pointer_expression "*(code **)(puVar60 + 0x1543d0)" * (cast_expression "(code **)(puVar60 + 0x1543d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1543d0)" ( (binary_expression "puVar60 + 0x1543d0" identifier + number_literal) ))))) )) (argument_list "(pIVar40,iVar37,pbVar30)" ( identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_00255d60;" goto statement_identifier ;) })) (expression_statement "(**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b);" (call_expression "(**(code **)(puVar60 + 0x153a18))(pIVar40,0x7b)" (parenthesized_expression "(**(code **)(puVar60 + 0x153a18))" ( (pointer_expression "**(code **)(puVar60 + 0x153a18)" * (pointer_expression "*(code **)(puVar60 + 0x153a18)" * (cast_expression "(code **)(puVar60 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153a18)" ( (binary_expression "puVar60 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(pIVar40,0x7b)" ( identifier , number_literal ))) ;) (expression_statement "iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d);" (assignment_expression "iVar39 = (**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d)" identifier = (call_expression "(**(code **)(puVar60 + 0x1541c4))(pbVar30,0x7d)" (parenthesized_expression "(**(code **)(puVar60 + 0x1541c4))" ( (pointer_expression "**(code **)(puVar60 + 0x1541c4)" * (pointer_expression "*(code **)(puVar60 + 0x1541c4)" * (cast_expression "(code **)(puVar60 + 0x1541c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1541c4)" ( (binary_expression "puVar60 + 0x1541c4" identifier + number_literal) ))))) )) (argument_list "(pbVar30,0x7d)" ( identifier , number_literal )))) ;) (if_statement "if (iVar39 == 0) {\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }" if (parenthesized_expression "(iVar39 == 0)" ( (binary_expression "iVar39 == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar61 = *(code **)(puVar60 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);\n              (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);\n              goto LAB_00255d60;\n            }" { (expression_statement "pcVar61 = *(code **)(puVar60 + 0x1543d0);" (assignment_expression "pcVar61 = *(code **)(puVar60 + 0x1543d0)" identifier = (pointer_expression "*(code **)(puVar60 + 0x1543d0)" * (cast_expression "(code **)(puVar60 + 0x1543d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1543d0)" ( (binary_expression "puVar60 + 0x1543d0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00255fc0:\n              (*pcVar61)(pIVar40,iVar37,pbVar30);" statement_identifier : (expression_statement "(*pcVar61)(pIVar40,iVar37,pbVar30);" (call_expression "(*pcVar61)(pIVar40,iVar37,pbVar30)" (parenthesized_expression "(*pcVar61)" ( (pointer_expression "*pcVar61" * identifier) )) (argument_list "(pIVar40,iVar37,pbVar30)" ( identifier , identifier , identifier ))) ;)) (expression_statement "(**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);" (call_expression "(**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d)" (parenthesized_expression "(**(code **)(puVar60 + 0x153a18))" ( (pointer_expression "**(code **)(puVar60 + 0x153a18)" * (pointer_expression "*(code **)(puVar60 + 0x153a18)" * (cast_expression "(code **)(puVar60 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153a18)" ( (binary_expression "puVar60 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(pIVar40,0x7d)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_00255d60;" goto statement_identifier ;) })) (goto_statement "goto LAB_00255f78;" goto statement_identifier ;) })) (goto_statement "goto LAB_00255d60;" goto statement_identifier ;) })) (labeled_statement "LAB_00255d8c:\n        (**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar25 + -0x770c);" statement_identifier : (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar25 + -0x770c);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40,iVar25 + -0x770c)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40,iVar25 + -0x770c)" ( identifier , (binary_expression "iVar25 + -0x770c" identifier + number_literal) ))) ;)) (if_statement "if (pIVar40->file != (FILE *)0x0) {\n          if (pIVar40->blob != (void *)0x0) {\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40);\n          }\n          (**(code **)(puVar60 + 0x153a18))(pIVar40,0);\n        }" if (parenthesized_expression "(pIVar40->file != (FILE *)0x0)" ( (binary_expression "pIVar40->file != (FILE *)0x0" (field_expression "pIVar40->file" identifier -> field_identifier) != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pIVar40->blob != (void *)0x0) {\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40);\n          }\n          (**(code **)(puVar60 + 0x153a18))(pIVar40,0);\n        }" { (if_statement "if (pIVar40->blob != (void *)0x0) {\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40);\n          }" if (parenthesized_expression "(pIVar40->blob != (void *)0x0)" ( (binary_expression "pIVar40->blob != (void *)0x0" (field_expression "pIVar40->blob" identifier -> field_identifier) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(puVar60 + 0x153fe4))(pIVar40);\n          }" { (expression_statement "(**(code **)(puVar60 + 0x153fe4))(pIVar40);" (call_expression "(**(code **)(puVar60 + 0x153fe4))(pIVar40)" (parenthesized_expression "(**(code **)(puVar60 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar60 + 0x153fe4)" * (pointer_expression "*(code **)(puVar60 + 0x153fe4)" * (cast_expression "(code **)(puVar60 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153fe4)" ( (binary_expression "puVar60 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(pIVar40)" ( identifier ))) ;) })) (expression_statement "(**(code **)(puVar60 + 0x153a18))(pIVar40,0);" (call_expression "(**(code **)(puVar60 + 0x153a18))(pIVar40,0)" (parenthesized_expression "(**(code **)(puVar60 + 0x153a18))" ( (pointer_expression "**(code **)(puVar60 + 0x153a18)" * (pointer_expression "*(code **)(puVar60 + 0x153a18)" * (cast_expression "(code **)(puVar60 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153a18)" ( (binary_expression "puVar60 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(pIVar40,0)" ( identifier , number_literal ))) ;) })) (if_statement "if (pIVar40->cache == (void *)0x0) {\n          if (pIVar40->compression == B44Compression) {\nLAB_002561e8:\n            uVar14 = (uint)(iVar26 * 3) >> 3;\n            puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);\n            if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;\n            pcVar42 = pIVar40->scenes;\n            if (0 < (int)pcVar42) {\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);\n            (**(code **)(puVar60 + 0x1539fc))(puVar32);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          while( true ) {\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n            if (iVar28 == 0) break;\n            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n          if (pIVar40->compression == B44Compression) goto LAB_002561e8;\n        }" if (parenthesized_expression "(pIVar40->cache == (void *)0x0)" ( (binary_expression "pIVar40->cache == (void *)0x0" (field_expression "pIVar40->cache" identifier -> field_identifier) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pIVar40->compression == B44Compression) {\nLAB_002561e8:\n            uVar14 = (uint)(iVar26 * 3) >> 3;\n            puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);\n            if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;\n            pcVar42 = pIVar40->scenes;\n            if (0 < (int)pcVar42) {\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);\n            (**(code **)(puVar60 + 0x1539fc))(puVar32);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n        }" { (if_statement "if (pIVar40->compression == B44Compression) {\nLAB_002561e8:\n            uVar14 = (uint)(iVar26 * 3) >> 3;\n            puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);\n            if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;\n            pcVar42 = pIVar40->scenes;\n            if (0 < (int)pcVar42) {\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);\n            (**(code **)(puVar60 + 0x1539fc))(puVar32);\n          }" if (parenthesized_expression "(pIVar40->compression == B44Compression)" ( (binary_expression "pIVar40->compression == B44Compression" (field_expression "pIVar40->compression" identifier -> field_identifier) == identifier) )) (compound_statement "{\nLAB_002561e8:\n            uVar14 = (uint)(iVar26 * 3) >> 3;\n            puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);\n            if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;\n            pcVar42 = pIVar40->scenes;\n            if (0 < (int)pcVar42) {\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);\n            (**(code **)(puVar60 + 0x1539fc))(puVar32);\n          }" { (labeled_statement "LAB_002561e8:\n            uVar14 = (uint)(iVar26 * 3) >> 3;" statement_identifier : (expression_statement "uVar14 = (uint)(iVar26 * 3) >> 3;" (assignment_expression "uVar14 = (uint)(iVar26 * 3) >> 3" identifier = (binary_expression "(uint)(iVar26 * 3) >> 3" (call_expression "(uint)(iVar26 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar26 * 3)" ( (binary_expression "iVar26 * 3" identifier * number_literal) ))) >> number_literal)) ;)) (expression_statement "puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14);" (assignment_expression "puVar32 = (undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14)" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar60 + 0x153f48))(pIVar40->scenes,uVar14)" (parenthesized_expression "(**(code **)(puVar60 + 0x153f48))" ( (pointer_expression "**(code **)(puVar60 + 0x153f48)" * (pointer_expression "*(code **)(puVar60 + 0x153f48)" * (cast_expression "(code **)(puVar60 + 0x153f48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153f48)" ( (binary_expression "puVar60 + 0x153f48" identifier + number_literal) ))))) )) (argument_list "(pIVar40->scenes,uVar14)" ( (field_expression "pIVar40->scenes" identifier -> field_identifier) , identifier ))))) ;) (if_statement "if (puVar32 == (undefined1 *)0x0) goto LAB_0025569c;" if (parenthesized_expression "(puVar32 == (undefined1 *)0x0)" ( (binary_expression "puVar32 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025569c;" goto statement_identifier ;)) (expression_statement "pcVar42 = pIVar40->scenes;" (assignment_expression "pcVar42 = pIVar40->scenes" identifier = (field_expression "pIVar40->scenes" identifier -> field_identifier)) ;) (if_statement "if (0 < (int)pcVar42) {\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }" if (parenthesized_expression "(0 < (int)pcVar42)" ( (binary_expression "0 < (int)pcVar42" number_literal < (cast_expression "(int)pcVar42" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              iVar28 = 0;\n              iVar50 = *(int *)(puVar60 + 0x153324);\n              iVar37 = 0;\n              dVar71 = *(double *)(iVar57 + 0x1410);\n              iVar49 = *(int *)(puVar60 + 0x15331c);\n              dVar63 = *(double *)(iVar50 + -0x5b00);\n              iVar48 = *(int *)(puVar60 + 0x153324);\n              iVar47 = *(int *)(puVar60 + 0x153324);\n              iVar39 = *(int *)(puVar60 + 0x153324);\n              dVar62 = *(double *)(iVar56 + 0x1400);\n              fVar68 = *(float *)(iVar49 + 0x1a50);\n              dVar69 = *(double *)(iVar48 + -0x5af8);\n              dVar67 = *(double *)(iVar47 + -0x5af0);\n              dVar70 = *(double *)(iVar39 + -0x5ae8);\n              puVar33 = puVar32;\n              do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);\n            }" { (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (expression_statement "iVar50 = *(int *)(puVar60 + 0x153324);" (assignment_expression "iVar50 = *(int *)(puVar60 + 0x153324)" identifier = (pointer_expression "*(int *)(puVar60 + 0x153324)" * (cast_expression "(int *)(puVar60 + 0x153324)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153324)" ( (binary_expression "puVar60 + 0x153324" identifier + number_literal) ))))) ;) (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" identifier = number_literal) ;) (expression_statement "dVar71 = *(double *)(iVar57 + 0x1410);" (assignment_expression "dVar71 = *(double *)(iVar57 + 0x1410)" identifier = (pointer_expression "*(double *)(iVar57 + 0x1410)" * (cast_expression "(double *)(iVar57 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar57 + 0x1410)" ( (binary_expression "iVar57 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "iVar49 = *(int *)(puVar60 + 0x15331c);" (assignment_expression "iVar49 = *(int *)(puVar60 + 0x15331c)" identifier = (pointer_expression "*(int *)(puVar60 + 0x15331c)" * (cast_expression "(int *)(puVar60 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x15331c)" ( (binary_expression "puVar60 + 0x15331c" identifier + number_literal) ))))) ;) (expression_statement "dVar63 = *(double *)(iVar50 + -0x5b00);" (assignment_expression "dVar63 = *(double *)(iVar50 + -0x5b00)" identifier = (pointer_expression "*(double *)(iVar50 + -0x5b00)" * (cast_expression "(double *)(iVar50 + -0x5b00)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar50 + -0x5b00)" ( (binary_expression "iVar50 + -0x5b00" identifier + number_literal) ))))) ;) (expression_statement "iVar48 = *(int *)(puVar60 + 0x153324);" (assignment_expression "iVar48 = *(int *)(puVar60 + 0x153324)" identifier = (pointer_expression "*(int *)(puVar60 + 0x153324)" * (cast_expression "(int *)(puVar60 + 0x153324)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153324)" ( (binary_expression "puVar60 + 0x153324" identifier + number_literal) ))))) ;) (expression_statement "iVar47 = *(int *)(puVar60 + 0x153324);" (assignment_expression "iVar47 = *(int *)(puVar60 + 0x153324)" identifier = (pointer_expression "*(int *)(puVar60 + 0x153324)" * (cast_expression "(int *)(puVar60 + 0x153324)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153324)" ( (binary_expression "puVar60 + 0x153324" identifier + number_literal) ))))) ;) (expression_statement "iVar39 = *(int *)(puVar60 + 0x153324);" (assignment_expression "iVar39 = *(int *)(puVar60 + 0x153324)" identifier = (pointer_expression "*(int *)(puVar60 + 0x153324)" * (cast_expression "(int *)(puVar60 + 0x153324)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153324)" ( (binary_expression "puVar60 + 0x153324" identifier + number_literal) ))))) ;) (expression_statement "dVar62 = *(double *)(iVar56 + 0x1400);" (assignment_expression "dVar62 = *(double *)(iVar56 + 0x1400)" identifier = (pointer_expression "*(double *)(iVar56 + 0x1400)" * (cast_expression "(double *)(iVar56 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar56 + 0x1400)" ( (binary_expression "iVar56 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "fVar68 = *(float *)(iVar49 + 0x1a50);" (assignment_expression "fVar68 = *(float *)(iVar49 + 0x1a50)" identifier = (pointer_expression "*(float *)(iVar49 + 0x1a50)" * (cast_expression "(float *)(iVar49 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1a50)" ( (binary_expression "iVar49 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "dVar69 = *(double *)(iVar48 + -0x5af8);" (assignment_expression "dVar69 = *(double *)(iVar48 + -0x5af8)" identifier = (pointer_expression "*(double *)(iVar48 + -0x5af8)" * (cast_expression "(double *)(iVar48 + -0x5af8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar48 + -0x5af8)" ( (binary_expression "iVar48 + -0x5af8" identifier + number_literal) ))))) ;) (expression_statement "dVar67 = *(double *)(iVar47 + -0x5af0);" (assignment_expression "dVar67 = *(double *)(iVar47 + -0x5af0)" identifier = (pointer_expression "*(double *)(iVar47 + -0x5af0)" * (cast_expression "(double *)(iVar47 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + -0x5af0)" ( (binary_expression "iVar47 + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "dVar70 = *(double *)(iVar39 + -0x5ae8);" (assignment_expression "dVar70 = *(double *)(iVar39 + -0x5ae8)" identifier = (pointer_expression "*(double *)(iVar39 + -0x5ae8)" * (cast_expression "(double *)(iVar39 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + -0x5ae8)" ( (binary_expression "iVar39 + -0x5ae8" identifier + number_literal) ))))) ;) (expression_statement "puVar33 = puVar32;" (assignment_expression "puVar33 = puVar32" identifier = identifier) ;) (do_statement "do {\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              } while (iVar37 < (int)pcVar42);" do (compound_statement "{\n                if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }\n                pcVar42 = pIVar40->scenes;\n                iVar37 = iVar37 + 1;\n                iVar28 = iVar28 + 0x58;\n                puVar33 = puVar34;\n              }" { (if_statement "if (iVar26 == 0x10) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }\n                else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar26 == 0x10)" ( (binary_expression "iVar26 == 0x10" identifier == number_literal) )) (compound_statement "{\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  *puVar33 = uVar52;\n                  puVar33[1] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[2] = uVar52;\n                  puVar33[3] = uVar51;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }\n                  puVar33[4] = uVar52;\n                  puVar34 = puVar33 + 6;\n                  puVar33[5] = uVar51;\n                }" { (expression_statement "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);" (assignment_expression "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28)" identifier = (cast_expression "(float)*(double *)(pIVar40->scene + iVar28 + 0x28)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(pIVar40->scene + iVar28 + 0x28)" * (cast_expression "(double *)(pIVar40->scene + iVar28 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->scene + iVar28 + 0x28)" ( (binary_expression "pIVar40->scene + iVar28 + 0x28" (binary_expression "pIVar40->scene + iVar28" (field_expression "pIVar40->scene" identifier -> field_identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }" if (parenthesized_expression "(fVar65 <= 0.0)" ( (binary_expression "fVar65 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }" { (expression_statement "uVar51 = 0;" (assignment_expression "uVar51 = 0" identifier = number_literal) ;) (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" identifier = number_literal) ;) }) (else_clause "else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }" else (if_statement "if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }" if (parenthesized_expression "(fVar65 < *(float *)(iVar49 + 0x1a50))" ( (binary_expression "fVar65 < *(float *)(iVar49 + 0x1a50)" identifier < (pointer_expression "*(float *)(iVar49 + 0x1a50)" * (cast_expression "(float *)(iVar49 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1a50)" ( (binary_expression "iVar49 + 0x1a50" identifier + number_literal) ))))) )) (compound_statement "{\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }" { (expression_statement "dVar64 = (double)fVar65 + dVar62;" (assignment_expression "dVar64 = (double)fVar65 + dVar62" identifier = (binary_expression "(double)fVar65 + dVar62" (cast_expression "(double)fVar65" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }" if (parenthesized_expression "(dVar64 < dVar71)" ( (binary_expression "dVar64 < dVar71" identifier < identifier) )) (compound_statement "{\n                      uVar66 = (undefined2)(int)dVar64;\n                    }" { (expression_statement "uVar66 = (undefined2)(int)dVar64;" (assignment_expression "uVar66 = (undefined2)(int)dVar64" identifier = (cast_expression "(undefined2)(int)dVar64" ( (type_descriptor "undefined2" type_identifier) ) (cast_expression "(int)dVar64" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }" else (compound_statement "{\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }" { (expression_statement "uVar66 = (undefined2)(int)(dVar64 - dVar71);" (assignment_expression "uVar66 = (undefined2)(int)(dVar64 - dVar71)" identifier = (call_expression "(undefined2)(int)(dVar64 - dVar71)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar64 - dVar71)" ( (binary_expression "dVar64 - dVar71" identifier - identifier) )))) ;) }))) (expression_statement "uVar52 = (undefined1)((ushort)uVar66 >> 8);" (assignment_expression "uVar52 = (undefined1)((ushort)uVar66 >> 8)" identifier = (call_expression "(undefined1)((ushort)uVar66 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ushort)uVar66 >> 8)" ( (binary_expression "(ushort)uVar66 >> 8" (cast_expression "(ushort)uVar66" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar51 = (undefined1)uVar66;" (assignment_expression "uVar51 = (undefined1)uVar66" identifier = (cast_expression "(undefined1)uVar66" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }" else (compound_statement "{\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }" { (expression_statement "uVar51 = 0xff;" (assignment_expression "uVar51 = 0xff" identifier = number_literal) ;) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" identifier = number_literal) ;) }))))) (expression_statement "*puVar33 = uVar52;" (assignment_expression "*puVar33 = uVar52" (pointer_expression "*puVar33" * identifier) = identifier) ;) (expression_statement "puVar33[1] = uVar51;" (assignment_expression "puVar33[1] = uVar51" (subscript_expression "puVar33[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);" (assignment_expression "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30)" identifier = (cast_expression "(float)*(double *)(pIVar40->scene + iVar28 + 0x30)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(pIVar40->scene + iVar28 + 0x30)" * (cast_expression "(double *)(pIVar40->scene + iVar28 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->scene + iVar28 + 0x30)" ( (binary_expression "pIVar40->scene + iVar28 + 0x30" (binary_expression "pIVar40->scene + iVar28" (field_expression "pIVar40->scene" identifier -> field_identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }" if (parenthesized_expression "(fVar65 <= 0.0)" ( (binary_expression "fVar65 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }" { (expression_statement "uVar51 = 0;" (assignment_expression "uVar51 = 0" identifier = number_literal) ;) (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" identifier = number_literal) ;) }) (else_clause "else if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }" else (if_statement "if (fVar65 < *(float *)(iVar49 + 0x1a50)) {\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }" if (parenthesized_expression "(fVar65 < *(float *)(iVar49 + 0x1a50))" ( (binary_expression "fVar65 < *(float *)(iVar49 + 0x1a50)" identifier < (pointer_expression "*(float *)(iVar49 + 0x1a50)" * (cast_expression "(float *)(iVar49 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1a50)" ( (binary_expression "iVar49 + 0x1a50" identifier + number_literal) ))))) )) (compound_statement "{\n                    dVar64 = (double)fVar65 + dVar62;\n                    if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }" { (expression_statement "dVar64 = (double)fVar65 + dVar62;" (assignment_expression "dVar64 = (double)fVar65 + dVar62" identifier = (binary_expression "(double)fVar65 + dVar62" (cast_expression "(double)fVar65" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar64 < dVar71) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }" if (parenthesized_expression "(dVar64 < dVar71)" ( (binary_expression "dVar64 < dVar71" identifier < identifier) )) (compound_statement "{\n                      uVar66 = (undefined2)(int)dVar64;\n                    }" { (expression_statement "uVar66 = (undefined2)(int)dVar64;" (assignment_expression "uVar66 = (undefined2)(int)dVar64" identifier = (cast_expression "(undefined2)(int)dVar64" ( (type_descriptor "undefined2" type_identifier) ) (cast_expression "(int)dVar64" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }" else (compound_statement "{\n                      uVar66 = (undefined2)(int)(dVar64 - dVar71);\n                    }" { (expression_statement "uVar66 = (undefined2)(int)(dVar64 - dVar71);" (assignment_expression "uVar66 = (undefined2)(int)(dVar64 - dVar71)" identifier = (call_expression "(undefined2)(int)(dVar64 - dVar71)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar64 - dVar71)" ( (binary_expression "dVar64 - dVar71" identifier - identifier) )))) ;) }))) (expression_statement "uVar52 = (undefined1)((ushort)uVar66 >> 8);" (assignment_expression "uVar52 = (undefined1)((ushort)uVar66 >> 8)" identifier = (call_expression "(undefined1)((ushort)uVar66 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ushort)uVar66 >> 8)" ( (binary_expression "(ushort)uVar66 >> 8" (cast_expression "(ushort)uVar66" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar51 = (undefined1)uVar66;" (assignment_expression "uVar51 = (undefined1)uVar66" identifier = (cast_expression "(undefined1)uVar66" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }" else (compound_statement "{\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }" { (expression_statement "uVar51 = 0xff;" (assignment_expression "uVar51 = 0xff" identifier = number_literal) ;) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" identifier = number_literal) ;) }))))) (expression_statement "puVar33[2] = uVar52;" (assignment_expression "puVar33[2] = uVar52" (subscript_expression "puVar33[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[3] = uVar51;" (assignment_expression "puVar33[3] = uVar51" (subscript_expression "puVar33[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);" (assignment_expression "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38)" identifier = (cast_expression "(float)*(double *)(pIVar40->scene + iVar28 + 0x38)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(pIVar40->scene + iVar28 + 0x38)" * (cast_expression "(double *)(pIVar40->scene + iVar28 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->scene + iVar28 + 0x38)" ( (binary_expression "pIVar40->scene + iVar28 + 0x38" (binary_expression "pIVar40->scene + iVar28" (field_expression "pIVar40->scene" identifier -> field_identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar65 <= 0.0) {\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }\n                  else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }" if (parenthesized_expression "(fVar65 <= 0.0)" ( (binary_expression "fVar65 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar51 = 0;\n                    uVar52 = 0;\n                  }" { (expression_statement "uVar51 = 0;" (assignment_expression "uVar51 = 0" identifier = number_literal) ;) (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" identifier = number_literal) ;) }) (else_clause "else if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }" else (if_statement "if (fVar65 < fVar68) {\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }\n                  else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }" if (parenthesized_expression "(fVar65 < fVar68)" ( (binary_expression "fVar65 < fVar68" identifier < identifier) )) (compound_statement "{\n                    dVar64 = (double)fVar65 + dVar73;\n                    if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }\n                    uVar52 = (undefined1)((ushort)uVar66 >> 8);\n                    uVar51 = (undefined1)uVar66;\n                  }" { (expression_statement "dVar64 = (double)fVar65 + dVar73;" (assignment_expression "dVar64 = (double)fVar65 + dVar73" identifier = (binary_expression "(double)fVar65 + dVar73" (cast_expression "(double)fVar65" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar64 < dVar72) {\n                      uVar66 = (undefined2)(int)dVar64;\n                    }\n                    else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }" if (parenthesized_expression "(dVar64 < dVar72)" ( (binary_expression "dVar64 < dVar72" identifier < identifier) )) (compound_statement "{\n                      uVar66 = (undefined2)(int)dVar64;\n                    }" { (expression_statement "uVar66 = (undefined2)(int)dVar64;" (assignment_expression "uVar66 = (undefined2)(int)dVar64" identifier = (cast_expression "(undefined2)(int)dVar64" ( (type_descriptor "undefined2" type_identifier) ) (cast_expression "(int)dVar64" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }" else (compound_statement "{\n                      uVar66 = (undefined2)(int)(dVar64 - dVar72);\n                    }" { (expression_statement "uVar66 = (undefined2)(int)(dVar64 - dVar72);" (assignment_expression "uVar66 = (undefined2)(int)(dVar64 - dVar72)" identifier = (call_expression "(undefined2)(int)(dVar64 - dVar72)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar64 - dVar72)" ( (binary_expression "dVar64 - dVar72" identifier - identifier) )))) ;) }))) (expression_statement "uVar52 = (undefined1)((ushort)uVar66 >> 8);" (assignment_expression "uVar52 = (undefined1)((ushort)uVar66 >> 8)" identifier = (call_expression "(undefined1)((ushort)uVar66 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ushort)uVar66 >> 8)" ( (binary_expression "(ushort)uVar66 >> 8" (cast_expression "(ushort)uVar66" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar51 = (undefined1)uVar66;" (assignment_expression "uVar51 = (undefined1)uVar66" identifier = (cast_expression "(undefined1)uVar66" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }" else (compound_statement "{\n                    uVar51 = 0xff;\n                    uVar52 = 0xff;\n                  }" { (expression_statement "uVar51 = 0xff;" (assignment_expression "uVar51 = 0xff" identifier = number_literal) ;) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" identifier = number_literal) ;) }))))) (expression_statement "puVar33[4] = uVar52;" (assignment_expression "puVar33[4] = uVar52" (subscript_expression "puVar33[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar34 = puVar33 + 6;" (assignment_expression "puVar34 = puVar33 + 6" identifier = (binary_expression "puVar33 + 6" identifier + number_literal)) ;) (expression_statement "puVar33[5] = uVar51;" (assignment_expression "puVar33[5] = uVar51" (subscript_expression "puVar33[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }" else (if_statement "if (iVar26 == 0x20) {\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }\n                else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar26 == 0x20)" ( (binary_expression "iVar26 == 0x20" identifier == number_literal) )) (compound_statement "{\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  *puVar33 = uVar58;\n                  puVar33[1] = uVar52;\n                  puVar33[2] = uVar51;\n                  puVar33[3] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[4] = uVar58;\n                  puVar33[5] = uVar52;\n                  puVar33[6] = uVar51;\n                  puVar33[7] = uVar44;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }\n                  puVar33[8] = uVar44;\n                  puVar34 = puVar33 + 0xc;\n                  puVar33[9] = uVar51;\n                  puVar33[10] = uVar52;\n                  puVar33[0xb] = uVar58;\n                }" { (expression_statement "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);" (assignment_expression "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28)" identifier = (cast_expression "(float)*(double *)(pIVar40->scene + iVar28 + 0x28)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(pIVar40->scene + iVar28 + 0x28)" * (cast_expression "(double *)(pIVar40->scene + iVar28 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->scene + iVar28 + 0x28)" ( (binary_expression "pIVar40->scene + iVar28 + 0x28" (binary_expression "pIVar40->scene + iVar28" (field_expression "pIVar40->scene" identifier -> field_identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }" if (parenthesized_expression "(fVar65 <= 0.0)" ( (binary_expression "fVar65 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }" { (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar51 = 0;" (assignment_expression "uVar51 = 0" identifier = number_literal) ;) (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" identifier = number_literal) ;) (expression_statement "uVar58 = 0;" (assignment_expression "uVar58 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }" else (compound_statement "{\n                    dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }" { (expression_statement "dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00);" (assignment_expression "dVar64 = (double)fVar65 * *(double *)(iVar50 + -0x5b00)" identifier = (binary_expression "(double)fVar65 * *(double *)(iVar50 + -0x5b00)" (cast_expression "(double)fVar65" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(iVar50 + -0x5b00)" * (cast_expression "(double *)(iVar50 + -0x5b00)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar50 + -0x5b00)" ( (binary_expression "iVar50 + -0x5b00" identifier + number_literal) )))))) ;) (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }" if (parenthesized_expression "(dVar64 < *(double *)(iVar48 + -0x5af8))" ( (binary_expression "dVar64 < *(double *)(iVar48 + -0x5af8)" identifier < (pointer_expression "*(double *)(iVar48 + -0x5af8)" * (cast_expression "(double *)(iVar48 + -0x5af8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar48 + -0x5af8)" ( (binary_expression "iVar48 + -0x5af8" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }" { (expression_statement "dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);" (assignment_expression "dVar64 = dVar64 + *(double *)(iVar56 + 0x1400)" identifier = (binary_expression "dVar64 + *(double *)(iVar56 + 0x1400)" identifier + (pointer_expression "*(double *)(iVar56 + 0x1400)" * (cast_expression "(double *)(iVar56 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar56 + 0x1400)" ( (binary_expression "iVar56 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }" if (parenthesized_expression "(dVar64 < *(double *)(iVar57 + 0x1410))" ( (binary_expression "dVar64 < *(double *)(iVar57 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar57 + 0x1410)" * (cast_expression "(double *)(iVar57 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar57 + 0x1410)" ( (binary_expression "iVar57 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n                        uVar43 = (uint)dVar64;\n                      }" { (expression_statement "uVar43 = (uint)dVar64;" (assignment_expression "uVar43 = (uint)dVar64" identifier = (cast_expression "(uint)dVar64" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }" else (compound_statement "{\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }" { (expression_statement "uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;" (assignment_expression "uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar64 - *(double *)(iVar57 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar64 - *(double *)(iVar57 + 0x1410))" ( (binary_expression "dVar64 - *(double *)(iVar57 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar57 + 0x1410)" * (cast_expression "(double *)(iVar57 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar57 + 0x1410)" ( (binary_expression "iVar57 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "uVar58 = (undefined1)(uVar43 >> 0x18);" (assignment_expression "uVar58 = (undefined1)(uVar43 >> 0x18)" identifier = (call_expression "(undefined1)(uVar43 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar43 >> 0x18)" ( (binary_expression "uVar43 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar52 = (undefined1)(uVar43 >> 0x10);" (assignment_expression "uVar52 = (undefined1)(uVar43 >> 0x10)" identifier = (call_expression "(undefined1)(uVar43 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar43 >> 0x10)" ( (binary_expression "uVar43 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar51 = (undefined1)(uVar43 >> 8);" (assignment_expression "uVar51 = (undefined1)(uVar43 >> 8)" identifier = (call_expression "(undefined1)(uVar43 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar43 >> 8)" ( (binary_expression "uVar43 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uVar44 = (undefined1)uVar43;" (assignment_expression "uVar44 = (undefined1)uVar43" identifier = (cast_expression "(undefined1)uVar43" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }" else (compound_statement "{\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }" { (expression_statement "uVar51 = 0xff;" (assignment_expression "uVar51 = 0xff" identifier = number_literal) ;) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" identifier = number_literal) ;) (expression_statement "uVar58 = 0xff;" (assignment_expression "uVar58 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "*puVar33 = uVar58;" (assignment_expression "*puVar33 = uVar58" (pointer_expression "*puVar33" * identifier) = identifier) ;) (expression_statement "puVar33[1] = uVar52;" (assignment_expression "puVar33[1] = uVar52" (subscript_expression "puVar33[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[2] = uVar51;" (assignment_expression "puVar33[2] = uVar51" (subscript_expression "puVar33[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[3] = uVar44;" (assignment_expression "puVar33[3] = uVar44" (subscript_expression "puVar33[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);" (assignment_expression "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30)" identifier = (cast_expression "(float)*(double *)(pIVar40->scene + iVar28 + 0x30)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(pIVar40->scene + iVar28 + 0x30)" * (cast_expression "(double *)(pIVar40->scene + iVar28 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->scene + iVar28 + 0x30)" ( (binary_expression "pIVar40->scene + iVar28 + 0x30" (binary_expression "pIVar40->scene + iVar28" (field_expression "pIVar40->scene" identifier -> field_identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }" if (parenthesized_expression "(fVar65 <= 0.0)" ( (binary_expression "fVar65 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }" { (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar51 = 0;" (assignment_expression "uVar51 = 0" identifier = number_literal) ;) (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" identifier = number_literal) ;) (expression_statement "uVar58 = 0;" (assignment_expression "uVar58 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }" else (compound_statement "{\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar44 = 0xff;\n                    if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }" { (expression_statement "dVar64 = (double)fVar65 * dVar63;" (assignment_expression "dVar64 = (double)fVar65 * dVar63" identifier = (binary_expression "(double)fVar65 * dVar63" (cast_expression "(double)fVar65" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar64 < *(double *)(iVar48 + -0x5af8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }\n                    else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }" if (parenthesized_expression "(dVar64 < *(double *)(iVar48 + -0x5af8))" ( (binary_expression "dVar64 < *(double *)(iVar48 + -0x5af8)" identifier < (pointer_expression "*(double *)(iVar48 + -0x5af8)" * (cast_expression "(double *)(iVar48 + -0x5af8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar48 + -0x5af8)" ( (binary_expression "iVar48 + -0x5af8" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)(uVar43 >> 0x18);\n                      uVar52 = (undefined1)(uVar43 >> 0x10);\n                      uVar51 = (undefined1)(uVar43 >> 8);\n                      uVar44 = (undefined1)uVar43;\n                    }" { (expression_statement "dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);" (assignment_expression "dVar64 = dVar64 + *(double *)(iVar56 + 0x1400)" identifier = (binary_expression "dVar64 + *(double *)(iVar56 + 0x1400)" identifier + (pointer_expression "*(double *)(iVar56 + 0x1400)" * (cast_expression "(double *)(iVar56 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar56 + 0x1400)" ( (binary_expression "iVar56 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }" if (parenthesized_expression "(dVar64 < *(double *)(iVar57 + 0x1410))" ( (binary_expression "dVar64 < *(double *)(iVar57 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar57 + 0x1410)" * (cast_expression "(double *)(iVar57 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar57 + 0x1410)" ( (binary_expression "iVar57 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n                        uVar43 = (uint)dVar64;\n                      }" { (expression_statement "uVar43 = (uint)dVar64;" (assignment_expression "uVar43 = (uint)dVar64" identifier = (cast_expression "(uint)dVar64" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }" else (compound_statement "{\n                        uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;\n                      }" { (expression_statement "uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000;" (assignment_expression "uVar43 = (int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar64 - *(double *)(iVar57 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar64 - *(double *)(iVar57 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar64 - *(double *)(iVar57 + 0x1410))" ( (binary_expression "dVar64 - *(double *)(iVar57 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar57 + 0x1410)" * (cast_expression "(double *)(iVar57 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar57 + 0x1410)" ( (binary_expression "iVar57 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "uVar58 = (undefined1)(uVar43 >> 0x18);" (assignment_expression "uVar58 = (undefined1)(uVar43 >> 0x18)" identifier = (call_expression "(undefined1)(uVar43 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar43 >> 0x18)" ( (binary_expression "uVar43 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar52 = (undefined1)(uVar43 >> 0x10);" (assignment_expression "uVar52 = (undefined1)(uVar43 >> 0x10)" identifier = (call_expression "(undefined1)(uVar43 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar43 >> 0x10)" ( (binary_expression "uVar43 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar51 = (undefined1)(uVar43 >> 8);" (assignment_expression "uVar51 = (undefined1)(uVar43 >> 8)" identifier = (call_expression "(undefined1)(uVar43 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar43 >> 8)" ( (binary_expression "uVar43 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uVar44 = (undefined1)uVar43;" (assignment_expression "uVar44 = (undefined1)uVar43" identifier = (cast_expression "(undefined1)uVar43" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }" else (compound_statement "{\n                      uVar51 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }" { (expression_statement "uVar51 = 0xff;" (assignment_expression "uVar51 = 0xff" identifier = number_literal) ;) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" identifier = number_literal) ;) (expression_statement "uVar58 = 0xff;" (assignment_expression "uVar58 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "puVar33[4] = uVar58;" (assignment_expression "puVar33[4] = uVar58" (subscript_expression "puVar33[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[5] = uVar52;" (assignment_expression "puVar33[5] = uVar52" (subscript_expression "puVar33[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[6] = uVar51;" (assignment_expression "puVar33[6] = uVar51" (subscript_expression "puVar33[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[7] = uVar44;" (assignment_expression "puVar33[7] = uVar44" (subscript_expression "puVar33[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);" (assignment_expression "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38)" identifier = (cast_expression "(float)*(double *)(pIVar40->scene + iVar28 + 0x38)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(pIVar40->scene + iVar28 + 0x38)" * (cast_expression "(double *)(pIVar40->scene + iVar28 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->scene + iVar28 + 0x38)" ( (binary_expression "pIVar40->scene + iVar28 + 0x38" (binary_expression "pIVar40->scene + iVar28" (field_expression "pIVar40->scene" identifier -> field_identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar65 <= 0.0) {\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }" if (parenthesized_expression "(fVar65 <= 0.0)" ( (binary_expression "fVar65 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar44 = 0;\n                    uVar51 = 0;\n                    uVar52 = 0;\n                    uVar58 = 0;\n                  }" { (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar51 = 0;" (assignment_expression "uVar51 = 0" identifier = number_literal) ;) (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" identifier = number_literal) ;) (expression_statement "uVar58 = 0;" (assignment_expression "uVar58 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }" else (compound_statement "{\n                    dVar64 = (double)fVar65 * dVar63;\n                    uVar51 = 0xff;\n                    if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }\n                  }" { (expression_statement "dVar64 = (double)fVar65 * dVar63;" (assignment_expression "dVar64 = (double)fVar65 * dVar63" identifier = (binary_expression "(double)fVar65 * dVar63" (cast_expression "(double)fVar65" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "uVar51 = 0xff;" (assignment_expression "uVar51 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar64 < dVar69) {\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }" if (parenthesized_expression "(dVar64 < dVar69)" ( (binary_expression "dVar64 < dVar69" identifier < identifier) )) (compound_statement "{\n                      dVar64 = dVar64 + dVar62;\n                      if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }\n                      uVar58 = (undefined1)uVar43;\n                      uVar52 = (undefined1)(uVar43 >> 8);\n                      uVar51 = (undefined1)(uVar43 >> 0x10);\n                      uVar44 = (undefined1)(uVar43 >> 0x18);\n                    }" { (expression_statement "dVar64 = dVar64 + dVar62;" (assignment_expression "dVar64 = dVar64 + dVar62" identifier = (binary_expression "dVar64 + dVar62" identifier + identifier)) ;) (if_statement "if (dVar64 < dVar71) {\n                        uVar43 = (uint)dVar64;\n                      }\n                      else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }" if (parenthesized_expression "(dVar64 < dVar71)" ( (binary_expression "dVar64 < dVar71" identifier < identifier) )) (compound_statement "{\n                        uVar43 = (uint)dVar64;\n                      }" { (expression_statement "uVar43 = (uint)dVar64;" (assignment_expression "uVar43 = (uint)dVar64" identifier = (cast_expression "(uint)dVar64" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }" else (compound_statement "{\n                        uVar43 = (int)(dVar64 - dVar71) | 0x80000000;\n                      }" { (expression_statement "uVar43 = (int)(dVar64 - dVar71) | 0x80000000;" (assignment_expression "uVar43 = (int)(dVar64 - dVar71) | 0x80000000" identifier = (binary_expression "(int)(dVar64 - dVar71) | 0x80000000" (cast_expression "(int)(dVar64 - dVar71)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar64 - dVar71)" ( (binary_expression "dVar64 - dVar71" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "uVar58 = (undefined1)uVar43;" (assignment_expression "uVar58 = (undefined1)uVar43" identifier = (cast_expression "(undefined1)uVar43" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uVar52 = (undefined1)(uVar43 >> 8);" (assignment_expression "uVar52 = (undefined1)(uVar43 >> 8)" identifier = (call_expression "(undefined1)(uVar43 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar43 >> 8)" ( (binary_expression "uVar43 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uVar51 = (undefined1)(uVar43 >> 0x10);" (assignment_expression "uVar51 = (undefined1)(uVar43 >> 0x10)" identifier = (call_expression "(undefined1)(uVar43 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar43 >> 0x10)" ( (binary_expression "uVar43 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar44 = (undefined1)(uVar43 >> 0x18);" (assignment_expression "uVar44 = (undefined1)(uVar43 >> 0x18)" identifier = (call_expression "(undefined1)(uVar43 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar43 >> 0x18)" ( (binary_expression "uVar43 >> 0x18" identifier >> number_literal) )))) ;) }) (else_clause "else {\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }" else (compound_statement "{\n                      uVar44 = 0xff;\n                      uVar52 = 0xff;\n                      uVar58 = 0xff;\n                    }" { (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" identifier = number_literal) ;) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" identifier = number_literal) ;) (expression_statement "uVar58 = 0xff;" (assignment_expression "uVar58 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "puVar33[8] = uVar44;" (assignment_expression "puVar33[8] = uVar44" (subscript_expression "puVar33[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar34 = puVar33 + 0xc;" (assignment_expression "puVar34 = puVar33 + 0xc" identifier = (binary_expression "puVar33 + 0xc" identifier + number_literal)) ;) (expression_statement "puVar33[9] = uVar51;" (assignment_expression "puVar33[9] = uVar51" (subscript_expression "puVar33[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[10] = uVar52;" (assignment_expression "puVar33[10] = uVar52" (subscript_expression "puVar33[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[0xb] = uVar58;" (assignment_expression "puVar33[0xb] = uVar58" (subscript_expression "puVar33[0xb]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }" else (compound_statement "{\n                  if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar33 = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);\n                  if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar33[1] = uVar52;\n                  fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);\n                  if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }\n                }" { (if_statement "if (iVar26 != 8) {\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }" if (parenthesized_expression "(iVar26 != 8)" ( (binary_expression "iVar26 != 8" identifier != number_literal) )) (compound_statement "{\n                    (**(code **)(puVar60 + 0x1539fc))(puVar32);\n                    pFVar12 = (FILE *)0x5ca;\n                    (**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);\n                    if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }\n                    goto LAB_0025569c;\n                  }" { (expression_statement "(**(code **)(puVar60 + 0x1539fc))(puVar32);" (call_expression "(**(code **)(puVar60 + 0x1539fc))(puVar32)" (parenthesized_expression "(**(code **)(puVar60 + 0x1539fc))" ( (pointer_expression "**(code **)(puVar60 + 0x1539fc)" * (pointer_expression "*(code **)(puVar60 + 0x1539fc)" * (cast_expression "(code **)(puVar60 + 0x1539fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1539fc)" ( (binary_expression "puVar60 + 0x1539fc" identifier + number_literal) ))))) )) (argument_list "(puVar32)" ( identifier ))) ;) (expression_statement "pFVar12 = (FILE *)0x5ca;" (assignment_expression "pFVar12 = (FILE *)0x5ca" identifier = (cast_expression "(FILE *)0x5ca" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130);" (call_expression "(**(code **)(puVar60 + 0x15395c))\n                              (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130)" (parenthesized_expression "(**(code **)(puVar60 + 0x15395c))" ( (pointer_expression "**(code **)(puVar60 + 0x15395c)" * (pointer_expression "*(code **)(puVar60 + 0x15395c)" * (cast_expression "(code **)(puVar60 + 0x15395c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15395c)" ( (binary_expression "puVar60 + 0x15395c" identifier + number_literal) ))))) )) (argument_list "(pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                               *(int *)(puVar60 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar60 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar60 + 0x15331c) + 0x3e28,pIVar40->magick + 0x130)" ( identifier , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7284" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(puVar60 + 0x153320) + -0x5aa8" (pointer_expression "*(int *)(puVar60 + 0x153320)" * (cast_expression "(int *)(puVar60 + 0x153320)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153320)" ( (binary_expression "puVar60 + 0x153320" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar60 + 0x15331c) + 0x3e28" (pointer_expression "*(int *)(puVar60 + 0x15331c)" * (cast_expression "(int *)(puVar60 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x15331c)" ( (binary_expression "puVar60 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "pIVar40->magick + 0x130" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) ))) ;) (if_statement "if (*(int *)(iVar8 + 0xc) == 0) {\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }\n                    else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }" if (parenthesized_expression "(*(int *)(iVar8 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar8 + 0xc) == 0" (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar40);\n                    }" { (expression_statement "(**(code **)(puVar60 + 0x1540c4))(pIVar40);" (call_expression "(**(code **)(puVar60 + 0x1540c4))(pIVar40)" (parenthesized_expression "(**(code **)(puVar60 + 0x1540c4))" ( (pointer_expression "**(code **)(puVar60 + 0x1540c4)" * (pointer_expression "*(code **)(puVar60 + 0x1540c4)" * (cast_expression "(code **)(puVar60 + 0x1540c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1540c4)" ( (binary_expression "puVar60 + 0x1540c4" identifier + number_literal) ))))) )) (argument_list "(pIVar40)" ( identifier ))) ;) }) (else_clause "else {\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }" else (compound_statement "{\n                      do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);\n                      (**(code **)(puVar60 + 0x1540c4))(pIVar9);\n                    }" { (do_statement "do {\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      } while (pIVar40 != (ImageInfo *)0x0);" do (compound_statement "{\n                        pIVar9 = pIVar40;\n                        pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);\n                      }" { (expression_statement "pIVar9 = pIVar40;" (assignment_expression "pIVar9 = pIVar40" identifier = identifier) ;) (expression_statement "pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4);" (assignment_expression "pIVar40 = *(ImageInfo **)((int)&pIVar9[1].background_color.red + 4)" identifier = (pointer_expression "*(ImageInfo **)((int)&pIVar9[1].background_color.red + 4)" * (cast_expression "(ImageInfo **)((int)&pIVar9[1].background_color.red + 4)" ( (type_descriptor "ImageInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pIVar9[1].background_color.red + 4)" ( (binary_expression "(int)&pIVar9[1].background_color.red + 4" (cast_expression "(int)&pIVar9[1].background_color.red" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar9[1].background_color.red" & (field_expression "pIVar9[1].background_color.red" (field_expression "pIVar9[1].background_color" (subscript_expression "pIVar9[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) ))))) ;) }) while (parenthesized_expression "(pIVar40 != (ImageInfo *)0x0)" ( (binary_expression "pIVar40 != (ImageInfo *)0x0" identifier != (cast_expression "(ImageInfo *)0x0" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "(**(code **)(puVar60 + 0x1540c4))(pIVar9);" (call_expression "(**(code **)(puVar60 + 0x1540c4))(pIVar9)" (parenthesized_expression "(**(code **)(puVar60 + 0x1540c4))" ( (pointer_expression "**(code **)(puVar60 + 0x1540c4)" * (pointer_expression "*(code **)(puVar60 + 0x1540c4)" * (cast_expression "(code **)(puVar60 + 0x1540c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1540c4)" ( (binary_expression "puVar60 + 0x1540c4" identifier + number_literal) ))))) )) (argument_list "(pIVar9)" ( identifier ))) ;) }))) (goto_statement "goto LAB_0025569c;" goto statement_identifier ;) })) (expression_statement "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28);" (assignment_expression "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x28)" identifier = (cast_expression "(float)*(double *)(pIVar40->scene + iVar28 + 0x28)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(pIVar40->scene + iVar28 + 0x28)" * (cast_expression "(double *)(pIVar40->scene + iVar28 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->scene + iVar28 + 0x28)" ( (binary_expression "pIVar40->scene + iVar28 + 0x28" (binary_expression "pIVar40->scene + iVar28" (field_expression "pIVar40->scene" identifier -> field_identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }" if (parenthesized_expression "(fVar65 <= 0.0)" ( (binary_expression "fVar65 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar52 = 0;\n                  }" { (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }" else (compound_statement "{\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }" { (expression_statement "dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);" (assignment_expression "dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0)" identifier = (binary_expression "(double)fVar65 / *(double *)(iVar47 + -0x5af0)" (cast_expression "(double)fVar65" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(iVar47 + -0x5af0)" * (cast_expression "(double *)(iVar47 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + -0x5af0)" ( (binary_expression "iVar47 + -0x5af0" identifier + number_literal) )))))) ;) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }" if (parenthesized_expression "(dVar64 < *(double *)(iVar39 + -0x5ae8))" ( (binary_expression "dVar64 < *(double *)(iVar39 + -0x5ae8)" identifier < (pointer_expression "*(double *)(iVar39 + -0x5ae8)" * (cast_expression "(double *)(iVar39 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + -0x5ae8)" ( (binary_expression "iVar39 + -0x5ae8" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }" { (expression_statement "dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);" (assignment_expression "dVar64 = dVar64 + *(double *)(iVar56 + 0x1400)" identifier = (binary_expression "dVar64 + *(double *)(iVar56 + 0x1400)" identifier + (pointer_expression "*(double *)(iVar56 + 0x1400)" * (cast_expression "(double *)(iVar56 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar56 + 0x1400)" ( (binary_expression "iVar56 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }" if (parenthesized_expression "(dVar64 < *(double *)(iVar57 + 0x1410))" ( (binary_expression "dVar64 < *(double *)(iVar57 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar57 + 0x1410)" * (cast_expression "(double *)(iVar57 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar57 + 0x1410)" ( (binary_expression "iVar57 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n                        uVar52 = (undefined1)(int)dVar64;\n                      }" { (expression_statement "uVar52 = (undefined1)(int)dVar64;" (assignment_expression "uVar52 = (undefined1)(int)dVar64" identifier = (cast_expression "(undefined1)(int)dVar64" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar64" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }" else (compound_statement "{\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }" { (expression_statement "uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));" (assignment_expression "uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410))" identifier = (call_expression "(undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410))" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar64 - *(double *)(iVar57 + 0x1410))" ( (binary_expression "dVar64 - *(double *)(iVar57 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar57 + 0x1410)" * (cast_expression "(double *)(iVar57 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar57 + 0x1410)" ( (binary_expression "iVar57 + 0x1410" identifier + number_literal) ))))) )))) ;) }))) })) }))) (expression_statement "*puVar33 = uVar52;" (assignment_expression "*puVar33 = uVar52" (pointer_expression "*puVar33" * identifier) = identifier) ;) (expression_statement "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30);" (assignment_expression "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x30)" identifier = (cast_expression "(float)*(double *)(pIVar40->scene + iVar28 + 0x30)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(pIVar40->scene + iVar28 + 0x30)" * (cast_expression "(double *)(pIVar40->scene + iVar28 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->scene + iVar28 + 0x30)" ( (binary_expression "pIVar40->scene + iVar28 + 0x30" (binary_expression "pIVar40->scene + iVar28" (field_expression "pIVar40->scene" identifier -> field_identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar65 <= 0.0) {\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }" if (parenthesized_expression "(fVar65 <= 0.0)" ( (binary_expression "fVar65 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar52 = 0;\n                  }" { (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }" else (compound_statement "{\n                    dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);\n                    uVar52 = 0xff;\n                    if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }\n                  }" { (expression_statement "dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0);" (assignment_expression "dVar64 = (double)fVar65 / *(double *)(iVar47 + -0x5af0)" identifier = (binary_expression "(double)fVar65 / *(double *)(iVar47 + -0x5af0)" (cast_expression "(double)fVar65" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(iVar47 + -0x5af0)" * (cast_expression "(double *)(iVar47 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + -0x5af0)" ( (binary_expression "iVar47 + -0x5af0" identifier + number_literal) )))))) ;) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar64 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }" if (parenthesized_expression "(dVar64 < *(double *)(iVar39 + -0x5ae8))" ( (binary_expression "dVar64 < *(double *)(iVar39 + -0x5ae8)" identifier < (pointer_expression "*(double *)(iVar39 + -0x5ae8)" * (cast_expression "(double *)(iVar39 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + -0x5ae8)" ( (binary_expression "iVar39 + -0x5ae8" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                    }" { (expression_statement "dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);" (assignment_expression "dVar64 = dVar64 + *(double *)(iVar56 + 0x1400)" identifier = (binary_expression "dVar64 + *(double *)(iVar56 + 0x1400)" identifier + (pointer_expression "*(double *)(iVar56 + 0x1400)" * (cast_expression "(double *)(iVar56 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar56 + 0x1400)" ( (binary_expression "iVar56 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }" if (parenthesized_expression "(dVar64 < *(double *)(iVar57 + 0x1410))" ( (binary_expression "dVar64 < *(double *)(iVar57 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar57 + 0x1410)" * (cast_expression "(double *)(iVar57 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar57 + 0x1410)" ( (binary_expression "iVar57 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n                        uVar52 = (undefined1)(int)dVar64;\n                      }" { (expression_statement "uVar52 = (undefined1)(int)dVar64;" (assignment_expression "uVar52 = (undefined1)(int)dVar64" identifier = (cast_expression "(undefined1)(int)dVar64" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar64" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }" else (compound_statement "{\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }" { (expression_statement "uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));" (assignment_expression "uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410))" identifier = (call_expression "(undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410))" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar64 - *(double *)(iVar57 + 0x1410))" ( (binary_expression "dVar64 - *(double *)(iVar57 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar57 + 0x1410)" * (cast_expression "(double *)(iVar57 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar57 + 0x1410)" ( (binary_expression "iVar57 + 0x1410" identifier + number_literal) ))))) )))) ;) }))) })) }))) (expression_statement "puVar33[1] = uVar52;" (assignment_expression "puVar33[1] = uVar52" (subscript_expression "puVar33[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38);" (assignment_expression "fVar65 = (float)*(double *)(pIVar40->scene + iVar28 + 0x38)" identifier = (cast_expression "(float)*(double *)(pIVar40->scene + iVar28 + 0x38)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(pIVar40->scene + iVar28 + 0x38)" * (cast_expression "(double *)(pIVar40->scene + iVar28 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar40->scene + iVar28 + 0x38)" ( (binary_expression "pIVar40->scene + iVar28 + 0x38" (binary_expression "pIVar40->scene + iVar28" (field_expression "pIVar40->scene" identifier -> field_identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar65 <= 0.0) {\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }\n                  else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }" if (parenthesized_expression "(fVar65 <= 0.0)" ( (binary_expression "fVar65 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    puVar34 = puVar33 + 3;\n                    puVar33[2] = 0;\n                  }" { (expression_statement "puVar34 = puVar33 + 3;" (assignment_expression "puVar34 = puVar33 + 3" identifier = (binary_expression "puVar33 + 3" identifier + number_literal)) ;) (expression_statement "puVar33[2] = 0;" (assignment_expression "puVar33[2] = 0" (subscript_expression "puVar33[2]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }" else (compound_statement "{\n                    dVar64 = (double)fVar65 / dVar67;\n                    if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }\n                  }" { (expression_statement "dVar64 = (double)fVar65 / dVar67;" (assignment_expression "dVar64 = (double)fVar65 / dVar67" identifier = (binary_expression "(double)fVar65 / dVar67" (cast_expression "(double)fVar65" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar64 < dVar70) {\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }\n                    else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }" if (parenthesized_expression "(dVar64 < dVar70)" ( (binary_expression "dVar64 < dVar70" identifier < identifier) )) (compound_statement "{\n                      dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);\n                      if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }\n                      puVar33[2] = uVar52;\n                      puVar34 = puVar33 + 3;\n                    }" { (expression_statement "dVar64 = dVar64 + *(double *)(iVar56 + 0x1400);" (assignment_expression "dVar64 = dVar64 + *(double *)(iVar56 + 0x1400)" identifier = (binary_expression "dVar64 + *(double *)(iVar56 + 0x1400)" identifier + (pointer_expression "*(double *)(iVar56 + 0x1400)" * (cast_expression "(double *)(iVar56 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar56 + 0x1400)" ( (binary_expression "iVar56 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (dVar64 < *(double *)(iVar57 + 0x1410)) {\n                        uVar52 = (undefined1)(int)dVar64;\n                      }\n                      else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }" if (parenthesized_expression "(dVar64 < *(double *)(iVar57 + 0x1410))" ( (binary_expression "dVar64 < *(double *)(iVar57 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar57 + 0x1410)" * (cast_expression "(double *)(iVar57 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar57 + 0x1410)" ( (binary_expression "iVar57 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n                        uVar52 = (undefined1)(int)dVar64;\n                      }" { (expression_statement "uVar52 = (undefined1)(int)dVar64;" (assignment_expression "uVar52 = (undefined1)(int)dVar64" identifier = (cast_expression "(undefined1)(int)dVar64" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar64" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }" else (compound_statement "{\n                        uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));\n                      }" { (expression_statement "uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410));" (assignment_expression "uVar52 = (undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410))" identifier = (call_expression "(undefined1)(int)(dVar64 - *(double *)(iVar57 + 0x1410))" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar64 - *(double *)(iVar57 + 0x1410))" ( (binary_expression "dVar64 - *(double *)(iVar57 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar57 + 0x1410)" * (cast_expression "(double *)(iVar57 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar57 + 0x1410)" ( (binary_expression "iVar57 + 0x1410" identifier + number_literal) ))))) )))) ;) }))) (expression_statement "puVar33[2] = uVar52;" (assignment_expression "puVar33[2] = uVar52" (subscript_expression "puVar33[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar34 = puVar33 + 3;" (assignment_expression "puVar34 = puVar33 + 3" identifier = (binary_expression "puVar33 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }" else (compound_statement "{\n                      puVar34 = puVar33 + 3;\n                      puVar33[2] = 0xff;\n                    }" { (expression_statement "puVar34 = puVar33 + 3;" (assignment_expression "puVar34 = puVar33 + 3" identifier = (binary_expression "puVar33 + 3" identifier + number_literal)) ;) (expression_statement "puVar33[2] = 0xff;" (assignment_expression "puVar33[2] = 0xff" (subscript_expression "puVar33[2]" identifier [ number_literal ]) = number_literal) ;) }))) }))) }))))) (expression_statement "pcVar42 = pIVar40->scenes;" (assignment_expression "pcVar42 = pIVar40->scenes" identifier = (field_expression "pIVar40->scenes" identifier -> field_identifier)) ;) (expression_statement "iVar37 = iVar37 + 1;" (assignment_expression "iVar37 = iVar37 + 1" identifier = (binary_expression "iVar37 + 1" identifier + number_literal)) ;) (expression_statement "iVar28 = iVar28 + 0x58;" (assignment_expression "iVar28 = iVar28 + 0x58" identifier = (binary_expression "iVar28 + 0x58" identifier + number_literal)) ;) (expression_statement "puVar33 = puVar34;" (assignment_expression "puVar33 = puVar34" identifier = identifier) ;) }) while (parenthesized_expression "(iVar37 < (int)pcVar42)" ( (binary_expression "iVar37 < (int)pcVar42" identifier < (cast_expression "(int)pcVar42" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "(**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32);" (call_expression "(**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar14 * (int)pcVar42,puVar32)" (parenthesized_expression "(**(code **)(puVar60 + 0x1543d0))" ( (pointer_expression "**(code **)(puVar60 + 0x1543d0)" * (pointer_expression "*(code **)(puVar60 + 0x1543d0)" * (cast_expression "(code **)(puVar60 + 0x1543d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1543d0)" ( (binary_expression "puVar60 + 0x1543d0" identifier + number_literal) ))))) )) (argument_list "(pIVar40,uVar14 * (int)pcVar42,puVar32)" ( identifier , (binary_expression "uVar14 * (int)pcVar42" identifier * (cast_expression "(int)pcVar42" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier ))) ;) (expression_statement "(**(code **)(puVar60 + 0x1539fc))(puVar32);" (call_expression "(**(code **)(puVar60 + 0x1539fc))(puVar32)" (parenthesized_expression "(**(code **)(puVar60 + 0x1539fc))" ( (pointer_expression "**(code **)(puVar60 + 0x1539fc)" * (pointer_expression "*(code **)(puVar60 + 0x1539fc)" * (cast_expression "(code **)(puVar60 + 0x1539fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1539fc)" ( (binary_expression "puVar60 + 0x1539fc" identifier + number_literal) ))))) )) (argument_list "(puVar32)" ( identifier ))) ;) })) (expression_statement "pcVar61 = *(code **)(puVar60 + 0x1537fc);" (assignment_expression "pcVar61 = *(code **)(puVar60 + 0x1537fc)" identifier = (pointer_expression "*(code **)(puVar60 + 0x1537fc)" * (cast_expression "(code **)(puVar60 + 0x1537fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537fc)" ( (binary_expression "puVar60 + 0x1537fc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          while( true ) {\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n            if (iVar28 == 0) break;\n            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n          if (pIVar40->compression == B44Compression) goto LAB_002561e8;\n        }" else (compound_statement "{\n          (**(code **)(puVar60 + 0x1538c8))(pIVar40);\n          while( true ) {\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n            if (iVar28 == 0) break;\n            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);\n          }\n          pcVar61 = *(code **)(puVar60 + 0x1537fc);\n          if (pIVar40->compression == B44Compression) goto LAB_002561e8;\n        }" { (expression_statement "(**(code **)(puVar60 + 0x1538c8))(pIVar40);" (call_expression "(**(code **)(puVar60 + 0x1538c8))(pIVar40)" (parenthesized_expression "(**(code **)(puVar60 + 0x1538c8))" ( (pointer_expression "**(code **)(puVar60 + 0x1538c8)" * (pointer_expression "*(code **)(puVar60 + 0x1538c8)" * (cast_expression "(code **)(puVar60 + 0x1538c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1538c8)" ( (binary_expression "puVar60 + 0x1538c8" identifier + number_literal) ))))) )) (argument_list "(pIVar40)" ( identifier ))) ;) (while_statement "while( true ) {\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n            if (iVar28 == 0) break;\n            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);\n            if (iVar28 == 0) break;\n            uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            (**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);\n            uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);\n            uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);\n            (**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);\n          }" { (expression_statement "iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40);" (assignment_expression "iVar28 = (**(code **)(puVar60 + 0x153948))(pIVar40)" identifier = (call_expression "(**(code **)(puVar60 + 0x153948))(pIVar40)" (parenthesized_expression "(**(code **)(puVar60 + 0x153948))" ( (pointer_expression "**(code **)(puVar60 + 0x153948)" * (pointer_expression "*(code **)(puVar60 + 0x153948)" * (cast_expression "(code **)(puVar60 + 0x153948)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153948)" ( (binary_expression "puVar60 + 0x153948" identifier + number_literal) ))))) )) (argument_list "(pIVar40)" ( identifier )))) ;) (if_statement "if (iVar28 == 0) break;" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28);" (assignment_expression "uVar55 = (**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28)" identifier = (call_expression "(**(code **)(puVar60 + 0x153e14))(pIVar40,iVar28)" (parenthesized_expression "(**(code **)(puVar60 + 0x153e14))" ( (pointer_expression "**(code **)(puVar60 + 0x153e14)" * (pointer_expression "*(code **)(puVar60 + 0x153e14)" * (cast_expression "(code **)(puVar60 + 0x153e14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153e14)" ( (binary_expression "puVar60 + 0x153e14" identifier + number_literal) ))))) )) (argument_list "(pIVar40,iVar28)" ( identifier , identifier )))) ;) (expression_statement "uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);" (assignment_expression "uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55)" identifier = (call_expression "(**(code **)(puVar60 + 0x153784))(uVar55)" (parenthesized_expression "(**(code **)(puVar60 + 0x153784))" ( (pointer_expression "**(code **)(puVar60 + 0x153784)" * (pointer_expression "*(code **)(puVar60 + 0x153784)" * (cast_expression "(code **)(puVar60 + 0x153784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153784)" ( (binary_expression "puVar60 + 0x153784" identifier + number_literal) ))))) )) (argument_list "(uVar55)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27);" (call_expression "(**(code **)(puVar60 + 0x153d10))(pIVar40,uVar27)" (parenthesized_expression "(**(code **)(puVar60 + 0x153d10))" ( (pointer_expression "**(code **)(puVar60 + 0x153d10)" * (pointer_expression "*(code **)(puVar60 + 0x153d10)" * (cast_expression "(code **)(puVar60 + 0x153d10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153d10)" ( (binary_expression "puVar60 + 0x153d10" identifier + number_literal) ))))) )) (argument_list "(pIVar40,uVar27)" ( identifier , identifier ))) ;) (expression_statement "uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55);" (assignment_expression "uVar27 = (**(code **)(puVar60 + 0x153784))(uVar55)" identifier = (call_expression "(**(code **)(puVar60 + 0x153784))(uVar55)" (parenthesized_expression "(**(code **)(puVar60 + 0x153784))" ( (pointer_expression "**(code **)(puVar60 + 0x153784)" * (pointer_expression "*(code **)(puVar60 + 0x153784)" * (cast_expression "(code **)(puVar60 + 0x153784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153784)" ( (binary_expression "puVar60 + 0x153784" identifier + number_literal) ))))) )) (argument_list "(uVar55)" ( identifier )))) ;) (expression_statement "uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55);" (assignment_expression "uVar55 = (**(code **)(puVar60 + 0x1538a4))(uVar55)" identifier = (call_expression "(**(code **)(puVar60 + 0x1538a4))(uVar55)" (parenthesized_expression "(**(code **)(puVar60 + 0x1538a4))" ( (pointer_expression "**(code **)(puVar60 + 0x1538a4)" * (pointer_expression "*(code **)(puVar60 + 0x1538a4)" * (cast_expression "(code **)(puVar60 + 0x1538a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1538a4)" ( (binary_expression "puVar60 + 0x1538a4" identifier + number_literal) ))))) )) (argument_list "(uVar55)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55);" (call_expression "(**(code **)(puVar60 + 0x1543d0))(pIVar40,uVar27,uVar55)" (parenthesized_expression "(**(code **)(puVar60 + 0x1543d0))" ( (pointer_expression "**(code **)(puVar60 + 0x1543d0)" * (pointer_expression "*(code **)(puVar60 + 0x1543d0)" * (cast_expression "(code **)(puVar60 + 0x1543d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1543d0)" ( (binary_expression "puVar60 + 0x1543d0" identifier + number_literal) ))))) )) (argument_list "(pIVar40,uVar27,uVar55)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pcVar61 = *(code **)(puVar60 + 0x1537fc);" (assignment_expression "pcVar61 = *(code **)(puVar60 + 0x1537fc)" identifier = (pointer_expression "*(code **)(puVar60 + 0x1537fc)" * (cast_expression "(code **)(puVar60 + 0x1537fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1537fc)" ( (binary_expression "puVar60 + 0x1537fc" identifier + number_literal) ))))) ;) (if_statement "if (pIVar40->compression == B44Compression) goto LAB_002561e8;" if (parenthesized_expression "(pIVar40->compression == B44Compression)" ( (binary_expression "pIVar40->compression == B44Compression" (field_expression "pIVar40->compression" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_002561e8;" goto statement_identifier ;)) }))) (expression_statement "pFVar12 = aFStack_5150;" (assignment_expression "pFVar12 = aFStack_5150" identifier = identifier) ;) (expression_statement "pIVar15 = (Image *)(*pcVar61)(pIVar40,auStack_4144,0,pFVar12,pFVar45);" (assignment_expression "pIVar15 = (Image *)(*pcVar61)(pIVar40,auStack_4144,0,pFVar12,pFVar45)" identifier = (cast_expression "(Image *)(*pcVar61)(pIVar40,auStack_4144,0,pFVar12,pFVar45)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar61)(pIVar40,auStack_4144,0,pFVar12,pFVar45)" (parenthesized_expression "(*pcVar61)" ( (pointer_expression "*pcVar61" * identifier) )) (argument_list "(pIVar40,auStack_4144,0,pFVar12,pFVar45)" ( identifier , identifier , number_literal , identifier , identifier ))))) ;) (if_statement "if (pIVar15 == (Image *)0x0) {\n          pFVar12 = (FILE *)0x605;\n          (**(code **)(puVar60 + 0x15395c))\n                    (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,\n                     pIVar40->magick + 0x130);\n          pIVar9 = pIVar40;\n          if (*(int *)(iVar8 + 0xc) == 0) {\n            pcVar61 = *(code **)(puVar60 + 0x1540c4);\n          }\n          else {\n            do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);\n          }\n          goto LAB_00255ea8;\n        }" if (parenthesized_expression "(pIVar15 == (Image *)0x0)" ( (binary_expression "pIVar15 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pFVar12 = (FILE *)0x605;\n          (**(code **)(puVar60 + 0x15395c))\n                    (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,\n                     pIVar40->magick + 0x130);\n          pIVar9 = pIVar40;\n          if (*(int *)(iVar8 + 0xc) == 0) {\n            pcVar61 = *(code **)(puVar60 + 0x1540c4);\n          }\n          else {\n            do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);\n          }\n          goto LAB_00255ea8;\n        }" { (expression_statement "pFVar12 = (FILE *)0x605;" (assignment_expression "pFVar12 = (FILE *)0x605" identifier = (cast_expression "(FILE *)0x605" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puVar60 + 0x15395c))\n                    (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,\n                     pIVar40->magick + 0x130);" (call_expression "(**(code **)(puVar60 + 0x15395c))\n                    (pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,\n                     pIVar40->magick + 0x130)" (parenthesized_expression "(**(code **)(puVar60 + 0x15395c))" ( (pointer_expression "**(code **)(puVar60 + 0x15395c)" * (pointer_expression "*(code **)(puVar60 + 0x15395c)" * (cast_expression "(code **)(puVar60 + 0x15395c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x15395c)" ( (binary_expression "puVar60 + 0x15395c" identifier + number_literal) ))))) )) (argument_list "(pFVar45,*(int *)(puVar60 + 0x153388) + -0x74dc,\n                     *(int *)(puVar60 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar60 + 0x153388) + -0x7450,*(int *)(puVar60 + 0x15331c) + 0x3e28,\n                     pIVar40->magick + 0x130)" ( identifier , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7284" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x7450" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar60 + 0x15331c) + 0x3e28" (pointer_expression "*(int *)(puVar60 + 0x15331c)" * (cast_expression "(int *)(puVar60 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x15331c)" ( (binary_expression "puVar60 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "pIVar40->magick + 0x130" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) ))) ;) (expression_statement "pIVar9 = pIVar40;" (assignment_expression "pIVar9 = pIVar40" identifier = identifier) ;) (if_statement "if (*(int *)(iVar8 + 0xc) == 0) {\n            pcVar61 = *(code **)(puVar60 + 0x1540c4);\n          }\n          else {\n            do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);\n          }" if (parenthesized_expression "(*(int *)(iVar8 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar8 + 0xc) == 0" (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            pcVar61 = *(code **)(puVar60 + 0x1540c4);\n          }" { (expression_statement "pcVar61 = *(code **)(puVar60 + 0x1540c4);" (assignment_expression "pcVar61 = *(code **)(puVar60 + 0x1540c4)" identifier = (pointer_expression "*(code **)(puVar60 + 0x1540c4)" * (cast_expression "(code **)(puVar60 + 0x1540c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1540c4)" ( (binary_expression "puVar60 + 0x1540c4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);\n          }" else (compound_statement "{\n            do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);\n          }" { (do_statement "do {\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            } while (pIVar9 != (ImageInfo *)0x0);" do (compound_statement "{\n              pIVar40 = pIVar9;\n              pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);\n              pcVar61 = *(code **)(puVar60 + 0x1540c4);\n            }" { (expression_statement "pIVar40 = pIVar9;" (assignment_expression "pIVar40 = pIVar9" identifier = identifier) ;) (expression_statement "pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4);" (assignment_expression "pIVar9 = *(ImageInfo **)((int)&pIVar40[1].background_color.red + 4)" identifier = (pointer_expression "*(ImageInfo **)((int)&pIVar40[1].background_color.red + 4)" * (cast_expression "(ImageInfo **)((int)&pIVar40[1].background_color.red + 4)" ( (type_descriptor "ImageInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pIVar40[1].background_color.red + 4)" ( (binary_expression "(int)&pIVar40[1].background_color.red + 4" (cast_expression "(int)&pIVar40[1].background_color.red" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar40[1].background_color.red" & (field_expression "pIVar40[1].background_color.red" (field_expression "pIVar40[1].background_color" (subscript_expression "pIVar40[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "pcVar61 = *(code **)(puVar60 + 0x1540c4);" (assignment_expression "pcVar61 = *(code **)(puVar60 + 0x1540c4)" identifier = (pointer_expression "*(code **)(puVar60 + 0x1540c4)" * (cast_expression "(code **)(puVar60 + 0x1540c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1540c4)" ( (binary_expression "puVar60 + 0x1540c4" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(pIVar9 != (ImageInfo *)0x0)" ( (binary_expression "pIVar9 != (ImageInfo *)0x0" identifier != (cast_expression "(ImageInfo *)0x0" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (goto_statement "goto LAB_00255ea8;" goto statement_identifier ;) })) (expression_statement "iVar26 = (**(code **)(puVar60 + 0x153eac))(pIVar40);" (assignment_expression "iVar26 = (**(code **)(puVar60 + 0x153eac))(pIVar40)" identifier = (call_expression "(**(code **)(puVar60 + 0x153eac))(pIVar40)" (parenthesized_expression "(**(code **)(puVar60 + 0x153eac))" ( (pointer_expression "**(code **)(puVar60 + 0x153eac)" * (pointer_expression "*(code **)(puVar60 + 0x153eac)" * (cast_expression "(code **)(puVar60 + 0x153eac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153eac)" ( (binary_expression "puVar60 + 0x153eac" identifier + number_literal) ))))) )) (argument_list "(pIVar40)" ( identifier )))) ;) (if_statement "if (iVar26 == 0) break;" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pIVar40 = (ImageInfo *)(**(code **)(puVar60 + 0x153e44))(pIVar40);" (assignment_expression "pIVar40 = (ImageInfo *)(**(code **)(puVar60 + 0x153e44))(pIVar40)" identifier = (cast_expression "(ImageInfo *)(**(code **)(puVar60 + 0x153e44))(pIVar40)" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar60 + 0x153e44))(pIVar40)" (parenthesized_expression "(**(code **)(puVar60 + 0x153e44))" ( (pointer_expression "**(code **)(puVar60 + 0x153e44)" * (pointer_expression "*(code **)(puVar60 + 0x153e44)" * (cast_expression "(code **)(puVar60 + 0x153e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153e44)" ( (binary_expression "puVar60 + 0x153e44" identifier + number_literal) ))))) )) (argument_list "(pIVar40)" ( identifier ))))) ;) (if_statement "if (*(code **)(pIVar40->magick + 0x118) != (code *)0x0) {\n          pFVar12 = pFStack_5188;\n          pIVar15 = (Image *)(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150);\n          if (pIVar15 == (Image *)0x0) break;\n        }" if (parenthesized_expression "(*(code **)(pIVar40->magick + 0x118) != (code *)0x0)" ( (binary_expression "*(code **)(pIVar40->magick + 0x118) != (code *)0x0" (pointer_expression "*(code **)(pIVar40->magick + 0x118)" * (cast_expression "(code **)(pIVar40->magick + 0x118)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pIVar40->magick + 0x118)" ( (binary_expression "pIVar40->magick + 0x118" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pFVar12 = pFStack_5188;\n          pIVar15 = (Image *)(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150);\n          if (pIVar15 == (Image *)0x0) break;\n        }" { (expression_statement "pFVar12 = pFStack_5188;" (assignment_expression "pFVar12 = pFStack_5188" identifier = identifier) ;) (expression_statement "pIVar15 = (Image *)(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150);" (assignment_expression "pIVar15 = (Image *)(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150)" identifier = (cast_expression "(Image *)(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pIVar40->magick + 0x118))\n                                       (*(int *)(puVar60 + 0x153328) + -0x150)" (parenthesized_expression "(**(code **)(pIVar40->magick + 0x118))" ( (pointer_expression "**(code **)(pIVar40->magick + 0x118)" * (pointer_expression "*(code **)(pIVar40->magick + 0x118)" * (cast_expression "(code **)(pIVar40->magick + 0x118)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pIVar40->magick + 0x118)" ( (binary_expression "pIVar40->magick + 0x118" (field_expression "pIVar40->magick" identifier -> field_identifier) + number_literal) ))))) )) (argument_list "(*(int *)(puVar60 + 0x153328) + -0x150)" ( (binary_expression "*(int *)(puVar60 + 0x153328) + -0x150" (pointer_expression "*(int *)(puVar60 + 0x153328)" * (cast_expression "(int *)(puVar60 + 0x153328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153328)" ( (binary_expression "puVar60 + 0x153328" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (pIVar15 == (Image *)0x0) break;" if (parenthesized_expression "(pIVar15 == (Image *)0x0)" ( (binary_expression "pIVar15 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) })) (expression_statement "pFStack_5188 = (FILE *)((int)&pFStack_5188->_flags + 1);" (assignment_expression "pFStack_5188 = (FILE *)((int)&pFStack_5188->_flags + 1)" identifier = (cast_expression "(FILE *)((int)&pFStack_5188->_flags + 1)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFStack_5188->_flags + 1)" ( (binary_expression "(int)&pFStack_5188->_flags + 1" (cast_expression "(int)&pFStack_5188->_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFStack_5188->_flags" & (field_expression "pFStack_5188->_flags" identifier -> field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "(*(int *)(iVar8 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar8 + 0xc) != 0" (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) != number_literal) )) ;) (expression_statement "pcVar61 = *(code **)(puVar60 + 0x1540c4);" (assignment_expression "pcVar61 = *(code **)(puVar60 + 0x1540c4)" identifier = (pointer_expression "*(code **)(puVar60 + 0x1540c4)" * (cast_expression "(code **)(puVar60 + 0x1540c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1540c4)" ( (binary_expression "puVar60 + 0x1540c4" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00255ea8:\n      (*pcVar61)(pIVar40);" statement_identifier : (expression_statement "(*pcVar61)(pIVar40);" (call_expression "(*pcVar61)(pIVar40)" (parenthesized_expression "(*pcVar61)" ( (pointer_expression "*pcVar61" * identifier) )) (argument_list "(pIVar40)" ( identifier ))) ;)) }))) (if_statement "if (iStack_3144 == *piVar21) {\n      return pIVar15;\n    }" if (parenthesized_expression "(iStack_3144 == *piVar21)" ( (binary_expression "iStack_3144 == *piVar21" identifier == (pointer_expression "*piVar21" * identifier)) )) (compound_statement "{\n      return pIVar15;\n    }" { (return_statement "return pIVar15;" return identifier ;) })) (expression_statement "(**(code **)(puVar60 + 0x153aa0))();" (call_expression "(**(code **)(puVar60 + 0x153aa0))()" (parenthesized_expression "(**(code **)(puVar60 + 0x153aa0))" ( (pointer_expression "**(code **)(puVar60 + 0x153aa0)" * (pointer_expression "*(code **)(puVar60 + 0x153aa0)" * (cast_expression "(code **)(puVar60 + 0x153aa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153aa0)" ( (binary_expression "puVar60 + 0x153aa0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                               (*(int *)(puVar60 + 0x15331c) + 0xdd0,\n                                *(int *)(puVar60 + 0x153388) + -0x74dc,0x485,\n                                &pFVar12[-0xc1]._IO_save_base);" (assignment_expression "pIVar15 = (Image *)(**(code **)(puVar60 + 0x154044))\n                               (*(int *)(puVar60 + 0x15331c) + 0xdd0,\n                                *(int *)(puVar60 + 0x153388) + -0x74dc,0x485,\n                                &pFVar12[-0xc1]._IO_save_base)" identifier = (cast_expression "(Image *)(**(code **)(puVar60 + 0x154044))\n                               (*(int *)(puVar60 + 0x15331c) + 0xdd0,\n                                *(int *)(puVar60 + 0x153388) + -0x74dc,0x485,\n                                &pFVar12[-0xc1]._IO_save_base)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar60 + 0x154044))\n                               (*(int *)(puVar60 + 0x15331c) + 0xdd0,\n                                *(int *)(puVar60 + 0x153388) + -0x74dc,0x485,\n                                &pFVar12[-0xc1]._IO_save_base)" (parenthesized_expression "(**(code **)(puVar60 + 0x154044))" ( (pointer_expression "**(code **)(puVar60 + 0x154044)" * (pointer_expression "*(code **)(puVar60 + 0x154044)" * (cast_expression "(code **)(puVar60 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x154044)" ( (binary_expression "puVar60 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar60 + 0x15331c) + 0xdd0,\n                                *(int *)(puVar60 + 0x153388) + -0x74dc,0x485,\n                                &pFVar12[-0xc1]._IO_save_base)" ( (binary_expression "*(int *)(puVar60 + 0x15331c) + 0xdd0" (pointer_expression "*(int *)(puVar60 + 0x15331c)" * (cast_expression "(int *)(puVar60 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x15331c)" ( (binary_expression "puVar60 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar60 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar60 + 0x153388)" * (cast_expression "(int *)(puVar60 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 0x153388)" ( (binary_expression "puVar60 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (pointer_expression "&pFVar12[-0xc1]._IO_save_base" & (field_expression "pFVar12[-0xc1]._IO_save_base" (subscript_expression "pFVar12[-0xc1]" identifier [ number_literal ]) . field_identifier)) ))))) ;) (return_statement "return pIVar15;" return identifier ;) (labeled_statement "LAB_00255f3c:\n  do {\n    if (*pbVar30 == 0x7d) {\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,0x5c);\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }\n    else {\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }\n    pbVar30 = pbVar30 + 1;\n  } while (pbVar30 != pbVar59);" statement_identifier : (do_statement "do {\n    if (*pbVar30 == 0x7d) {\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,0x5c);\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }\n    else {\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }\n    pbVar30 = pbVar30 + 1;\n  } while (pbVar30 != pbVar59);" do (compound_statement "{\n    if (*pbVar30 == 0x7d) {\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,0x5c);\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }\n    else {\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }\n    pbVar30 = pbVar30 + 1;\n  }" { (if_statement "if (*pbVar30 == 0x7d) {\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,0x5c);\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }\n    else {\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }" if (parenthesized_expression "(*pbVar30 == 0x7d)" ( (binary_expression "*pbVar30 == 0x7d" (pointer_expression "*pbVar30" * identifier) == number_literal) )) (compound_statement "{\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,0x5c);\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }" { (expression_statement "(**(code **)(puVar60 + 0x153a18))(pIVar40,0x5c);" (call_expression "(**(code **)(puVar60 + 0x153a18))(pIVar40,0x5c)" (parenthesized_expression "(**(code **)(puVar60 + 0x153a18))" ( (pointer_expression "**(code **)(puVar60 + 0x153a18)" * (pointer_expression "*(code **)(puVar60 + 0x153a18)" * (cast_expression "(code **)(puVar60 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153a18)" ( (binary_expression "puVar60 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(pIVar40,0x5c)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);" (call_expression "(**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30)" (parenthesized_expression "(**(code **)(puVar60 + 0x153a18))" ( (pointer_expression "**(code **)(puVar60 + 0x153a18)" * (pointer_expression "*(code **)(puVar60 + 0x153a18)" * (cast_expression "(code **)(puVar60 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153a18)" ( (binary_expression "puVar60 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(pIVar40,*pbVar30)" ( identifier , (pointer_expression "*pbVar30" * identifier) ))) ;) }) (else_clause "else {\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }" else (compound_statement "{\n      (**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);\n    }" { (expression_statement "(**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30);" (call_expression "(**(code **)(puVar60 + 0x153a18))(pIVar40,*pbVar30)" (parenthesized_expression "(**(code **)(puVar60 + 0x153a18))" ( (pointer_expression "**(code **)(puVar60 + 0x153a18)" * (pointer_expression "*(code **)(puVar60 + 0x153a18)" * (cast_expression "(code **)(puVar60 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153a18)" ( (binary_expression "puVar60 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(pIVar40,*pbVar30)" ( identifier , (pointer_expression "*pbVar30" * identifier) ))) ;) }))) (expression_statement "pbVar30 = pbVar30 + 1;" (assignment_expression "pbVar30 = pbVar30 + 1" identifier = (binary_expression "pbVar30 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar30 != pbVar59)" ( (binary_expression "pbVar30 != pbVar59" identifier != identifier) )) ;)) (labeled_statement "LAB_00255f78:\n  (**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);" statement_identifier : (expression_statement "(**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d);" (call_expression "(**(code **)(puVar60 + 0x153a18))(pIVar40,0x7d)" (parenthesized_expression "(**(code **)(puVar60 + 0x153a18))" ( (pointer_expression "**(code **)(puVar60 + 0x153a18)" * (pointer_expression "*(code **)(puVar60 + 0x153a18)" * (cast_expression "(code **)(puVar60 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153a18)" ( (binary_expression "puVar60 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(pIVar40,0x7d)" ( identifier , number_literal ))) ;)) (labeled_statement "LAB_00255d60:\n  (**(code **)(puVar60 + 0x153a18))(pIVar40,10);" statement_identifier : (expression_statement "(**(code **)(puVar60 + 0x153a18))(pIVar40,10);" (call_expression "(**(code **)(puVar60 + 0x153a18))(pIVar40,10)" (parenthesized_expression "(**(code **)(puVar60 + 0x153a18))" ( (pointer_expression "**(code **)(puVar60 + 0x153a18)" * (pointer_expression "*(code **)(puVar60 + 0x153a18)" * (cast_expression "(code **)(puVar60 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x153a18)" ( (binary_expression "puVar60 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(pIVar40,10)" ( identifier , number_literal ))) ;)) (expression_statement "pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40);" (assignment_expression "pFVar29 = (FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40)" identifier = (cast_expression "(FILE *)(**(code **)(puVar60 + 0x1542fc))(pIVar40)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar60 + 0x1542fc))(pIVar40)" (parenthesized_expression "(**(code **)(puVar60 + 0x1542fc))" ( (pointer_expression "**(code **)(puVar60 + 0x1542fc)" * (pointer_expression "*(code **)(puVar60 + 0x1542fc)" * (cast_expression "(code **)(puVar60 + 0x1542fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar60 + 0x1542fc)" ( (binary_expression "puVar60 + 0x1542fc" identifier + number_literal) ))))) )) (argument_list "(pIVar40)" ( identifier ))))) ;) (if_statement "if (pFVar29 == (FILE *)0x0) goto LAB_00255d8c;" if (parenthesized_expression "(pFVar29 == (FILE *)0x0)" ( (binary_expression "pFVar29 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00255d8c;" goto statement_identifier ;)) (goto_statement "goto LAB_00255c90;" goto statement_identifier ;) })))
(translation_unit "int FUN_0025375c(ushort *param_1,ushort *param_2)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  undefined8 uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  ushort *puVar8;\n  ushort *puVar9;\n  int iVar10;\n  ushort *puVar11;\n  int iVar12;\n  uint uVar13;\n  ushort *puVar14;\n  double *pdVar15;\n  ushort *puVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 uVar23;\n  int iVar24;\n  byte *pbVar25;\n  int *piVar26;\n  undefined1 *puVar27;\n  undefined1 *puVar28;\n  undefined1 *puVar29;\n  int iVar30;\n  int iVar31;\n  int iVar32;\n  ushort *puVar33;\n  int iVar34;\n  undefined *puVar35;\n  undefined1 uVar37;\n  uint uVar36;\n  ushort *puVar38;\n  int iVar39;\n  int iVar40;\n  int iVar41;\n  int iVar42;\n  int iVar43;\n  undefined1 uVar44;\n  undefined1 uVar45;\n  int iVar46;\n  int iVar47;\n  undefined4 uVar48;\n  int iVar49;\n  undefined4 unaff_s3;\n  ushort *unaff_s4;\n  ushort *puVar50;\n  ushort *unaff_s5;\n  int iVar51;\n  undefined1 uVar52;\n  ushort *unaff_s6;\n  ushort *unaff_s7;\n  byte *pbVar53;\n  undefined *puVar54;\n  ushort *unaff_s8;\n  code *pcVar55;\n  double dVar56;\n  double dVar57;\n  float fVar59;\n  double dVar58;\n  undefined2 uVar60;\n  double dVar61;\n  float fVar62;\n  double dVar63;\n  double dVar64;\n  double in_f20_21;\n  double dVar65;\n  double in_f22_23;\n  double in_f24_25;\n  double dVar66;\n  double dVar67;\n  double dVar68;\n  undefined8 uVar69;\n  ushort *puStack_5188;\n  undefined4 uStack_5150;\n  undefined4 uStack_514c;\n  undefined1 auStack_5144 [4096];\n  undefined1 auStack_4144 [4096];\n  int iStack_3144;\n  ushort *puStack_3140;\n  ushort *puStack_313c;\n  undefined8 uStack_3138;\n  ushort *puStack_3130;\n  ushort *puStack_312c;\n  ushort *puStack_3128;\n  ushort *puStack_3124;\n  ushort *puStack_3120;\n  code *pcStack_311c;\n  double dStack_3118;\n  double dStack_3110;\n  double dStack_3108;\n  undefined8 local_30d8;\n  undefined *local_30d0;\n  ushort *local_30cc;\n  ushort *local_30c8;\n  int local_309c;\n  undefined4 local_3078;\n  undefined4 local_3074;\n  ushort local_3070 [22];\n  ushort auStack_3044 [2048];\n  undefined1 local_2044 [4096];\n  ushort local_1044 [2048];\n  int local_44;\n  \n  puVar54 = PTR___stack_chk_guard_003a9230;\n  uVar69 = CONCAT44(param_2,unaff_s3);\n  local_44 = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x190a) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x1908) != 0) {\n    local_30d8._4_4_ = param_1 + 0x1108;\n    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }\n  if (param_2 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_2 + 0xe) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2);\n  puVar38 = (ushort *)0x2;\n  puVar50 = puVar8;\n  local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2);\n  if (local_309c == 0) {\n    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n    iVar10 = 0;\n  }\n  else {\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }\nLAB_002546dc:\n  if (local_44 == *(int *)puVar54) {\n    return iVar10;\n  }\n  pcVar55 = FUN_002555c4;\n  iVar10 = local_44;\n  puVar54 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  piVar18 = *(int **)(puVar54 + 0x153c6c);\n  iStack_3144 = *piVar18;\n  puStack_3140 = puVar8;\n  puStack_313c = param_1;\n  puStack_3130 = unaff_s4;\n  puStack_312c = unaff_s5;\n  puStack_3128 = unaff_s6;\n  puStack_3124 = unaff_s7;\n  puStack_3120 = unaff_s8;\n  pcStack_311c = pcVar55;\n  dStack_3118 = in_f20_21;\n  dStack_3110 = in_f22_23;\n  dStack_3108 = in_f24_25;\n  uStack_3138 = uVar69;\n  if (iVar10 == 0) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);\n    return iVar10;\n  }\n  puVar8 = *(ushort **)(puVar54 + 0x153388);\n  if (*(int *)(iVar10 + 0x3214) != -0x54535255) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);\n    return iVar10;\n  }\n  if (puVar50 != (ushort *)0x0) {\n    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }\n    if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }\n    if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    puVar8 = puVar38;\n    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);\n    if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }\n    if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }\n    (**(code **)(puVar54 + 0x153aa0))();\n  }\n  iVar10 = (**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a);\n  return iVar10;\nLAB_00255f3c:\n  do {\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  } while (pbVar25 != pbVar53);\nLAB_00255f78:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\nLAB_00255d60:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,10);\n  puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n  if (puVar9 == (ushort *)0x0) goto LAB_00255d8c;\n  goto LAB_00255c90;\n}\n\n" (function_definition "int FUN_0025375c(ushort *param_1,ushort *param_2)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  undefined8 uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  ushort *puVar8;\n  ushort *puVar9;\n  int iVar10;\n  ushort *puVar11;\n  int iVar12;\n  uint uVar13;\n  ushort *puVar14;\n  double *pdVar15;\n  ushort *puVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 uVar23;\n  int iVar24;\n  byte *pbVar25;\n  int *piVar26;\n  undefined1 *puVar27;\n  undefined1 *puVar28;\n  undefined1 *puVar29;\n  int iVar30;\n  int iVar31;\n  int iVar32;\n  ushort *puVar33;\n  int iVar34;\n  undefined *puVar35;\n  undefined1 uVar37;\n  uint uVar36;\n  ushort *puVar38;\n  int iVar39;\n  int iVar40;\n  int iVar41;\n  int iVar42;\n  int iVar43;\n  undefined1 uVar44;\n  undefined1 uVar45;\n  int iVar46;\n  int iVar47;\n  undefined4 uVar48;\n  int iVar49;\n  undefined4 unaff_s3;\n  ushort *unaff_s4;\n  ushort *puVar50;\n  ushort *unaff_s5;\n  int iVar51;\n  undefined1 uVar52;\n  ushort *unaff_s6;\n  ushort *unaff_s7;\n  byte *pbVar53;\n  undefined *puVar54;\n  ushort *unaff_s8;\n  code *pcVar55;\n  double dVar56;\n  double dVar57;\n  float fVar59;\n  double dVar58;\n  undefined2 uVar60;\n  double dVar61;\n  float fVar62;\n  double dVar63;\n  double dVar64;\n  double in_f20_21;\n  double dVar65;\n  double in_f22_23;\n  double in_f24_25;\n  double dVar66;\n  double dVar67;\n  double dVar68;\n  undefined8 uVar69;\n  ushort *puStack_5188;\n  undefined4 uStack_5150;\n  undefined4 uStack_514c;\n  undefined1 auStack_5144 [4096];\n  undefined1 auStack_4144 [4096];\n  int iStack_3144;\n  ushort *puStack_3140;\n  ushort *puStack_313c;\n  undefined8 uStack_3138;\n  ushort *puStack_3130;\n  ushort *puStack_312c;\n  ushort *puStack_3128;\n  ushort *puStack_3124;\n  ushort *puStack_3120;\n  code *pcStack_311c;\n  double dStack_3118;\n  double dStack_3110;\n  double dStack_3108;\n  undefined8 local_30d8;\n  undefined *local_30d0;\n  ushort *local_30cc;\n  ushort *local_30c8;\n  int local_309c;\n  undefined4 local_3078;\n  undefined4 local_3074;\n  ushort local_3070 [22];\n  ushort auStack_3044 [2048];\n  undefined1 local_2044 [4096];\n  ushort local_1044 [2048];\n  int local_44;\n  \n  puVar54 = PTR___stack_chk_guard_003a9230;\n  uVar69 = CONCAT44(param_2,unaff_s3);\n  local_44 = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x190a) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x1908) != 0) {\n    local_30d8._4_4_ = param_1 + 0x1108;\n    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }\n  if (param_2 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_2 + 0xe) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2);\n  puVar38 = (ushort *)0x2;\n  puVar50 = puVar8;\n  local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2);\n  if (local_309c == 0) {\n    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n    iVar10 = 0;\n  }\n  else {\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }\nLAB_002546dc:\n  if (local_44 == *(int *)puVar54) {\n    return iVar10;\n  }\n  pcVar55 = FUN_002555c4;\n  iVar10 = local_44;\n  puVar54 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  piVar18 = *(int **)(puVar54 + 0x153c6c);\n  iStack_3144 = *piVar18;\n  puStack_3140 = puVar8;\n  puStack_313c = param_1;\n  puStack_3130 = unaff_s4;\n  puStack_312c = unaff_s5;\n  puStack_3128 = unaff_s6;\n  puStack_3124 = unaff_s7;\n  puStack_3120 = unaff_s8;\n  pcStack_311c = pcVar55;\n  dStack_3118 = in_f20_21;\n  dStack_3110 = in_f22_23;\n  dStack_3108 = in_f24_25;\n  uStack_3138 = uVar69;\n  if (iVar10 == 0) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);\n    return iVar10;\n  }\n  puVar8 = *(ushort **)(puVar54 + 0x153388);\n  if (*(int *)(iVar10 + 0x3214) != -0x54535255) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);\n    return iVar10;\n  }\n  if (puVar50 != (ushort *)0x0) {\n    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }\n    if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }\n    if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    puVar8 = puVar38;\n    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);\n    if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }\n    if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }\n    (**(code **)(puVar54 + 0x153aa0))();\n  }\n  iVar10 = (**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a);\n  return iVar10;\nLAB_00255f3c:\n  do {\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  } while (pbVar25 != pbVar53);\nLAB_00255f78:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\nLAB_00255d60:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,10);\n  puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n  if (puVar9 == (ushort *)0x0) goto LAB_00255d8c;\n  goto LAB_00255c90;\n}" primitive_type (function_declarator "FUN_0025375c(ushort *param_1,ushort *param_2)" identifier (parameter_list "(ushort *param_1,ushort *param_2)" ( (parameter_declaration "ushort *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ushort *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  ushort uVar2;\n  undefined8 uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  ushort *puVar8;\n  ushort *puVar9;\n  int iVar10;\n  ushort *puVar11;\n  int iVar12;\n  uint uVar13;\n  ushort *puVar14;\n  double *pdVar15;\n  ushort *puVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 uVar23;\n  int iVar24;\n  byte *pbVar25;\n  int *piVar26;\n  undefined1 *puVar27;\n  undefined1 *puVar28;\n  undefined1 *puVar29;\n  int iVar30;\n  int iVar31;\n  int iVar32;\n  ushort *puVar33;\n  int iVar34;\n  undefined *puVar35;\n  undefined1 uVar37;\n  uint uVar36;\n  ushort *puVar38;\n  int iVar39;\n  int iVar40;\n  int iVar41;\n  int iVar42;\n  int iVar43;\n  undefined1 uVar44;\n  undefined1 uVar45;\n  int iVar46;\n  int iVar47;\n  undefined4 uVar48;\n  int iVar49;\n  undefined4 unaff_s3;\n  ushort *unaff_s4;\n  ushort *puVar50;\n  ushort *unaff_s5;\n  int iVar51;\n  undefined1 uVar52;\n  ushort *unaff_s6;\n  ushort *unaff_s7;\n  byte *pbVar53;\n  undefined *puVar54;\n  ushort *unaff_s8;\n  code *pcVar55;\n  double dVar56;\n  double dVar57;\n  float fVar59;\n  double dVar58;\n  undefined2 uVar60;\n  double dVar61;\n  float fVar62;\n  double dVar63;\n  double dVar64;\n  double in_f20_21;\n  double dVar65;\n  double in_f22_23;\n  double in_f24_25;\n  double dVar66;\n  double dVar67;\n  double dVar68;\n  undefined8 uVar69;\n  ushort *puStack_5188;\n  undefined4 uStack_5150;\n  undefined4 uStack_514c;\n  undefined1 auStack_5144 [4096];\n  undefined1 auStack_4144 [4096];\n  int iStack_3144;\n  ushort *puStack_3140;\n  ushort *puStack_313c;\n  undefined8 uStack_3138;\n  ushort *puStack_3130;\n  ushort *puStack_312c;\n  ushort *puStack_3128;\n  ushort *puStack_3124;\n  ushort *puStack_3120;\n  code *pcStack_311c;\n  double dStack_3118;\n  double dStack_3110;\n  double dStack_3108;\n  undefined8 local_30d8;\n  undefined *local_30d0;\n  ushort *local_30cc;\n  ushort *local_30c8;\n  int local_309c;\n  undefined4 local_3078;\n  undefined4 local_3074;\n  ushort local_3070 [22];\n  ushort auStack_3044 [2048];\n  undefined1 local_2044 [4096];\n  ushort local_1044 [2048];\n  int local_44;\n  \n  puVar54 = PTR___stack_chk_guard_003a9230;\n  uVar69 = CONCAT44(param_2,unaff_s3);\n  local_44 = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x190a) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x1908) != 0) {\n    local_30d8._4_4_ = param_1 + 0x1108;\n    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }\n  if (param_2 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_2 + 0xe) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2);\n  puVar38 = (ushort *)0x2;\n  puVar50 = puVar8;\n  local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2);\n  if (local_309c == 0) {\n    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n    iVar10 = 0;\n  }\n  else {\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }\nLAB_002546dc:\n  if (local_44 == *(int *)puVar54) {\n    return iVar10;\n  }\n  pcVar55 = FUN_002555c4;\n  iVar10 = local_44;\n  puVar54 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  piVar18 = *(int **)(puVar54 + 0x153c6c);\n  iStack_3144 = *piVar18;\n  puStack_3140 = puVar8;\n  puStack_313c = param_1;\n  puStack_3130 = unaff_s4;\n  puStack_312c = unaff_s5;\n  puStack_3128 = unaff_s6;\n  puStack_3124 = unaff_s7;\n  puStack_3120 = unaff_s8;\n  pcStack_311c = pcVar55;\n  dStack_3118 = in_f20_21;\n  dStack_3110 = in_f22_23;\n  dStack_3108 = in_f24_25;\n  uStack_3138 = uVar69;\n  if (iVar10 == 0) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);\n    return iVar10;\n  }\n  puVar8 = *(ushort **)(puVar54 + 0x153388);\n  if (*(int *)(iVar10 + 0x3214) != -0x54535255) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);\n    return iVar10;\n  }\n  if (puVar50 != (ushort *)0x0) {\n    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }\n    if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }\n    if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    puVar8 = puVar38;\n    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);\n    if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }\n    if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }\n    (**(code **)(puVar54 + 0x153aa0))();\n  }\n  iVar10 = (**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a);\n  return iVar10;\nLAB_00255f3c:\n  do {\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  } while (pbVar25 != pbVar53);\nLAB_00255f78:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\nLAB_00255d60:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,10);\n  puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n  if (puVar9 == (ushort *)0x0) goto LAB_00255d8c;\n  goto LAB_00255c90;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "ushort *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "ushort *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "ushort *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "ushort *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "double *pdVar15;" primitive_type (pointer_declarator "*pdVar15" * identifier) ;) (declaration "ushort *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "undefined4 uVar23;" type_identifier identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "byte *pbVar25;" type_identifier (pointer_declarator "*pbVar25" * identifier) ;) (declaration "int *piVar26;" primitive_type (pointer_declarator "*piVar26" * identifier) ;) (declaration "undefined1 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "undefined1 *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "undefined1 *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "int iVar32;" primitive_type identifier ;) (declaration "ushort *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "int iVar34;" primitive_type identifier ;) (declaration "undefined *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "undefined1 uVar37;" type_identifier identifier ;) (declaration "uint uVar36;" type_identifier identifier ;) (declaration "ushort *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "int iVar39;" primitive_type identifier ;) (declaration "int iVar40;" primitive_type identifier ;) (declaration "int iVar41;" primitive_type identifier ;) (declaration "int iVar42;" primitive_type identifier ;) (declaration "int iVar43;" primitive_type identifier ;) (declaration "undefined1 uVar44;" type_identifier identifier ;) (declaration "undefined1 uVar45;" type_identifier identifier ;) (declaration "int iVar46;" primitive_type identifier ;) (declaration "int iVar47;" primitive_type identifier ;) (declaration "undefined4 uVar48;" type_identifier identifier ;) (declaration "int iVar49;" primitive_type identifier ;) (declaration "undefined4 unaff_s3;" type_identifier identifier ;) (declaration "ushort *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "ushort *puVar50;" type_identifier (pointer_declarator "*puVar50" * identifier) ;) (declaration "ushort *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "int iVar51;" primitive_type identifier ;) (declaration "undefined1 uVar52;" type_identifier identifier ;) (declaration "ushort *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "ushort *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "byte *pbVar53;" type_identifier (pointer_declarator "*pbVar53" * identifier) ;) (declaration "undefined *puVar54;" type_identifier (pointer_declarator "*puVar54" * identifier) ;) (declaration "ushort *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "code *pcVar55;" type_identifier (pointer_declarator "*pcVar55" * identifier) ;) (declaration "double dVar56;" primitive_type identifier ;) (declaration "double dVar57;" primitive_type identifier ;) (declaration "float fVar59;" primitive_type identifier ;) (declaration "double dVar58;" primitive_type identifier ;) (declaration "undefined2 uVar60;" type_identifier identifier ;) (declaration "double dVar61;" primitive_type identifier ;) (declaration "float fVar62;" primitive_type identifier ;) (declaration "double dVar63;" primitive_type identifier ;) (declaration "double dVar64;" primitive_type identifier ;) (declaration "double in_f20_21;" primitive_type identifier ;) (declaration "double dVar65;" primitive_type identifier ;) (declaration "double in_f22_23;" primitive_type identifier ;) (declaration "double in_f24_25;" primitive_type identifier ;) (declaration "double dVar66;" primitive_type identifier ;) (declaration "double dVar67;" primitive_type identifier ;) (declaration "double dVar68;" primitive_type identifier ;) (declaration "undefined8 uVar69;" type_identifier identifier ;) (declaration "ushort *puStack_5188;" type_identifier (pointer_declarator "*puStack_5188" * identifier) ;) (declaration "undefined4 uStack_5150;" type_identifier identifier ;) (declaration "undefined4 uStack_514c;" type_identifier identifier ;) (declaration "undefined1 auStack_5144 [4096];" type_identifier (array_declarator "auStack_5144 [4096]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_4144 [4096];" type_identifier (array_declarator "auStack_4144 [4096]" identifier [ number_literal ]) ;) (declaration "int iStack_3144;" primitive_type identifier ;) (declaration "ushort *puStack_3140;" type_identifier (pointer_declarator "*puStack_3140" * identifier) ;) (declaration "ushort *puStack_313c;" type_identifier (pointer_declarator "*puStack_313c" * identifier) ;) (declaration "undefined8 uStack_3138;" type_identifier identifier ;) (declaration "ushort *puStack_3130;" type_identifier (pointer_declarator "*puStack_3130" * identifier) ;) (declaration "ushort *puStack_312c;" type_identifier (pointer_declarator "*puStack_312c" * identifier) ;) (declaration "ushort *puStack_3128;" type_identifier (pointer_declarator "*puStack_3128" * identifier) ;) (declaration "ushort *puStack_3124;" type_identifier (pointer_declarator "*puStack_3124" * identifier) ;) (declaration "ushort *puStack_3120;" type_identifier (pointer_declarator "*puStack_3120" * identifier) ;) (declaration "code *pcStack_311c;" type_identifier (pointer_declarator "*pcStack_311c" * identifier) ;) (declaration "double dStack_3118;" primitive_type identifier ;) (declaration "double dStack_3110;" primitive_type identifier ;) (declaration "double dStack_3108;" primitive_type identifier ;) (declaration "undefined8 local_30d8;" type_identifier identifier ;) (declaration "undefined *local_30d0;" type_identifier (pointer_declarator "*local_30d0" * identifier) ;) (declaration "ushort *local_30cc;" type_identifier (pointer_declarator "*local_30cc" * identifier) ;) (declaration "ushort *local_30c8;" type_identifier (pointer_declarator "*local_30c8" * identifier) ;) (declaration "int local_309c;" primitive_type identifier ;) (declaration "undefined4 local_3078;" type_identifier identifier ;) (declaration "undefined4 local_3074;" type_identifier identifier ;) (declaration "ushort local_3070 [22];" type_identifier (array_declarator "local_3070 [22]" identifier [ number_literal ]) ;) (declaration "ushort auStack_3044 [2048];" type_identifier (array_declarator "auStack_3044 [2048]" identifier [ number_literal ]) ;) (declaration "undefined1 local_2044 [4096];" type_identifier (array_declarator "local_2044 [4096]" identifier [ number_literal ]) ;) (declaration "ushort local_1044 [2048];" type_identifier (array_declarator "local_1044 [2048]" identifier [ number_literal ]) ;) (declaration "int local_44;" primitive_type identifier ;) (expression_statement "puVar54 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar54 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "uVar69 = CONCAT44(param_2,unaff_s3);" (assignment_expression "uVar69 = CONCAT44(param_2,unaff_s3)" identifier = (call_expression "CONCAT44(param_2,unaff_s3)" identifier (argument_list "(param_2,unaff_s3)" ( identifier , identifier )))) ;) (expression_statement "local_44 = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_44 = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_1 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" if (parenthesized_expression "(param_1 == (ushort *)0x0)" ( (binary_expression "param_1 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" { (expression_statement "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (binary_expression "PTR_LAB_003a88e0 + 0xd78" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) , number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (*(int *)(param_1 + 0x190a) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x190a) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x190a) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x190a)" * (cast_expression "(int *)(param_1 + 0x190a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x190a)" ( (binary_expression "param_1 + 0x190a" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" { (expression_statement "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (binary_expression "PTR_LAB_003a88e0 + 0xda0" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) , number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (*(int *)(param_1 + 0x1908) != 0) {\n    local_30d8._4_4_ = param_1 + 0x1108;\n    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x1908) != 0)" ( (binary_expression "*(int *)(param_1 + 0x1908) != 0" (pointer_expression "*(int *)(param_1 + 0x1908)" * (cast_expression "(int *)(param_1 + 0x1908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1908)" ( (binary_expression "param_1 + 0x1908" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    local_30d8._4_4_ = param_1 + 0x1108;\n    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }" { (expression_statement "local_30d8._4_4_ = param_1 + 0x1108;" (assignment_expression "local_30d8._4_4_ = param_1 + 0x1108" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (binary_expression "param_1 + 0x1108" identifier + number_literal)) ;) (expression_statement "local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);" (assignment_expression "local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac)" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x62ac)" ( (binary_expression "PTR_s_t_to_left_003a88e4 + -0x62ac" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" * (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5)" ( number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) , number_literal ))) ;) })) (if_statement "if (param_2 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" if (parenthesized_expression "(param_2 == (ushort *)0x0)" ( (binary_expression "param_2 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" { (expression_statement "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1cac" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) , number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (*(int *)(param_2 + 0xe) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0xe) != -0x54535255)" ( (binary_expression "*(int *)(param_2 + 0xe) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0xe)" * (cast_expression "(int *)(param_2 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xe)" ( (binary_expression "param_2 + 0xe" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" { (expression_statement "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" ( (binary_expression "PTR_LAB_003a88e0 + 0x294c" identifier + number_literal) , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) , number_literal , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (expression_statement "puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2);" (assignment_expression "puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2)" identifier = (cast_expression "(ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2)" (parenthesized_expression "(*(code *)PTR_AcquireImage_003a960c)" ( (pointer_expression "*(code *)PTR_AcquireImage_003a960c" * (cast_expression "(code *)PTR_AcquireImage_003a960c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2)" ( identifier , identifier ))))) ;) (expression_statement "puVar38 = (ushort *)0x2;" (assignment_expression "puVar38 = (ushort *)0x2" identifier = (cast_expression "(ushort *)0x2" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar50 = puVar8;" (assignment_expression "puVar50 = puVar8" identifier = identifier) ;) (expression_statement "local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2);" (assignment_expression "local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2)" identifier = (call_expression "(*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2)" (parenthesized_expression "(*(code *)PTR_OpenBlob_003a924c)" ( (pointer_expression "*(code *)PTR_OpenBlob_003a924c" * (cast_expression "(code *)PTR_OpenBlob_003a924c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar8,2,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (local_309c == 0) {\n    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n    iVar10 = 0;\n  }\n  else {\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }" if (parenthesized_expression "(local_309c == 0)" ( (binary_expression "local_309c == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n    iVar10 = 0;\n  }" { (expression_statement "(*(code *)PTR_DestroyImageList_003a9510)(puVar8);" (call_expression "(*(code *)PTR_DestroyImageList_003a9510)(puVar8)" (parenthesized_expression "(*(code *)PTR_DestroyImageList_003a9510)" ( (pointer_expression "*(code *)PTR_DestroyImageList_003a9510" * (cast_expression "(code *)PTR_DestroyImageList_003a9510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }" else (compound_statement "{\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }" { (expression_statement "puVar38 = (ushort *)0xffa;" (assignment_expression "puVar38 = (ushort *)0xffa" identifier = (cast_expression "(ushort *)0xffa" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_3044,puVar8 + 0x1a0)" ( identifier , (binary_expression "puVar8 + 0x1a0" identifier + number_literal) ))) ;) (expression_statement "puVar50 = auStack_3044;" (assignment_expression "puVar50 = auStack_3044" identifier = identifier) ;) (expression_statement "(*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);" (call_expression "(*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8)" (parenthesized_expression "(*(code *)PTR_AppendImageFormat_003a8fa8)" ( (pointer_expression "*(code *)PTR_AppendImageFormat_003a8fa8" * (cast_expression "(code *)PTR_AppendImageFormat_003a8fa8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x50b8)" ( (binary_expression "PTR_s_courses_003a88ec + -0x50b8" identifier + number_literal) ))) ;) (expression_statement "unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (expression_statement "puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" identifier = identifier) ;) (expression_statement "puVar4 = PTR_LAB_003a88e0;" (assignment_expression "puVar4 = PTR_LAB_003a88e0" identifier = identifier) ;) (expression_statement "uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);" (assignment_expression "uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0)" identifier = (call_expression "CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0)" identifier (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0)" ( identifier , identifier )))) ;) (if_statement "if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }" if (parenthesized_expression "(unaff_s8 == (ushort *)0xffffffff)" ( (binary_expression "unaff_s8 == (ushort *)0xffffffff" identifier == (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }" { (expression_statement "(*(code *)PTR_DestroyImage_003a8f4c)(puVar8);" (call_expression "(*(code *)PTR_DestroyImage_003a8f4c)(puVar8)" (parenthesized_expression "(*(code *)PTR_DestroyImage_003a8f4c)" ( (pointer_expression "*(code *)PTR_DestroyImage_003a8f4c" * (cast_expression "(code *)PTR_DestroyImage_003a8f4c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "param_1 = auStack_3044;" (assignment_expression "param_1 = auStack_3044" identifier = identifier) ;) (expression_statement "uVar69 = CONCAT44(param_2,unaff_s3);" (assignment_expression "uVar69 = CONCAT44(param_2,unaff_s3)" identifier = (call_expression "CONCAT44(param_2,unaff_s3)" identifier (argument_list "(param_2,unaff_s3)" ( identifier , identifier )))) ;) }) (else_clause "else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }" else (compound_statement "{\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }" { (expression_statement "unaff_s5 = local_1044;" (assignment_expression "unaff_s5 = local_1044" identifier = identifier) ;) (expression_statement "puVar38 = (ushort *)0x1000;" (assignment_expression "puVar38 = (ushort *)0x1000" identifier = (cast_expression "(ushort *)0x1000" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2044[0] = 0;" (assignment_expression "local_2044[0] = 0" (subscript_expression "local_2044[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s4 = (ushort *)((int)unaff_s8 << 1);" (assignment_expression "unaff_s4 = (ushort *)((int)unaff_s8 << 1)" identifier = (cast_expression "(ushort *)((int)unaff_s8 << 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s8 << 1)" ( (binary_expression "(int)unaff_s8 << 1" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "(*(code *)PTR_memset_003a96d4)(unaff_s5,0);" (call_expression "(*(code *)PTR_memset_003a96d4)(unaff_s5,0)" (parenthesized_expression "(*(code *)PTR_memset_003a96d4)" ( (pointer_expression "*(code *)PTR_memset_003a96d4" * (cast_expression "(code *)PTR_memset_003a96d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5,0)" ( identifier , number_literal ))) ;) (expression_statement "local_3074 = 0;" (assignment_expression "local_3074 = 0" identifier = number_literal) ;) (expression_statement "local_3078 = 0;" (assignment_expression "local_3078 = 0" identifier = number_literal) ;) (expression_statement "puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();" (assignment_expression "puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)()" identifier = (cast_expression "(ushort *)(*(code *)PTR___ctype_b_loc_003a9434)()" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_003a9434)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_003a9434)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_003a9434" * (cast_expression "(code *)PTR___ctype_b_loc_003a9434" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "in_f24_25 = *(double *)(puVar5 + -0x5b00);" (assignment_expression "in_f24_25 = *(double *)(puVar5 + -0x5b00)" identifier = (pointer_expression "*(double *)(puVar5 + -0x5b00)" * (cast_expression "(double *)(puVar5 + -0x5b00)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x5b00)" ( (binary_expression "puVar5 + -0x5b00" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(puVar4 + 0x1418);" (assignment_expression "in_f22_23 = *(double *)(puVar4 + 0x1418)" identifier = (pointer_expression "*(double *)(puVar4 + 0x1418)" * (cast_expression "(double *)(puVar4 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x1418)" ( (binary_expression "puVar4 + 0x1418" identifier + number_literal) ))))) ;) (expression_statement "in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);" (assignment_expression "in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "unaff_s7 = local_3070;" (assignment_expression "unaff_s7 = local_3070" identifier = identifier) ;) (do_statement "do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);" do (compound_statement "{\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      }" { (expression_statement "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;" (assignment_expression "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c" identifier = identifier) ;) (expression_statement "(*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);" (call_expression "(*(code *)PTR_SetGeometryInfo_003a9970)(local_3070)" (parenthesized_expression "(*(code *)PTR_SetGeometryInfo_003a9970)" ( (pointer_expression "*(code *)PTR_SetGeometryInfo_003a9970" * (cast_expression "(code *)PTR_SetGeometryInfo_003a9970" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3070)" ( identifier ))) ;) (expression_statement "unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);" (assignment_expression "unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" identifier = (cast_expression "(ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireString_003a9814)(0)" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" ( (pointer_expression "*(code *)PTR_AcquireString_003a9814" * (cast_expression "(code *)PTR_AcquireString_003a9814" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);" (assignment_expression "iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0)" identifier = (call_expression "(*(code *)PTR_GetMagickSignature_003a96ec)(0)" (parenthesized_expression "(*(code *)PTR_GetMagickSignature_003a96ec)" ( (pointer_expression "*(code *)PTR_GetMagickSignature_003a96ec" * (cast_expression "(code *)PTR_GetMagickSignature_003a96ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "iVar30 = *(int *)puVar9;" (assignment_expression "iVar30 = *(int *)puVar9" identifier = (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar8[0x10] = 0;" (assignment_expression "puVar8[0x10] = 0" (subscript_expression "puVar8[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[0x11] = 8;" (assignment_expression "puVar8[0x11] = 8" (subscript_expression "puVar8[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar50 = (ushort *)(iVar30 + (int)unaff_s4);" (assignment_expression "puVar50 = (ushort *)(iVar30 + (int)unaff_s4)" identifier = (cast_expression "(ushort *)(iVar30 + (int)unaff_s4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + (int)unaff_s4)" ( (binary_expression "iVar30 + (int)unaff_s4" identifier + (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar8[4] = 0;" (assignment_expression "puVar8[4] = 0" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[5] = 0x10;" (assignment_expression "puVar8[5] = 0x10" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = *puVar50;" (assignment_expression "uVar2 = *puVar50" identifier = (pointer_expression "*puVar50" * identifier)) ;) (expression_statement "puVar11 = unaff_s8;" (assignment_expression "puVar11 = unaff_s8" identifier = identifier) ;) (labeled_statement "LAB_0025399c:\n        unaff_s4 = puVar50;" statement_identifier : (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" identifier = identifier) ;)) (if_statement "if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }" if (parenthesized_expression "((uVar2 & 0x80) != 0)" ( (binary_expression "(uVar2 & 0x80) != 0" (parenthesized_expression "(uVar2 & 0x80)" ( (binary_expression "uVar2 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }" { (do_statement "do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );" do (compound_statement "{\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          }" { (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" identifier = identifier) ;) (if_statement "if (puVar11 == (ushort *)&DAT_0000003a) break;" if (parenthesized_expression "(puVar11 == (ushort *)&DAT_0000003a)" ( (binary_expression "puVar11 == (ushort *)&DAT_0000003a" identifier == (cast_expression "(ushort *)&DAT_0000003a" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000003a" & identifier))) )) (break_statement "break;" break ;)) (if_statement "if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }" if (parenthesized_expression "(puVar11 == (ushort *)0x7b)" ( (binary_expression "puVar11 == (ushort *)0x7b" identifier == (cast_expression "(ushort *)0x7b" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }" { (expression_statement "puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" identifier = (cast_expression "(ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireString_003a9814)(0)" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" ( (pointer_expression "*(code *)PTR_AcquireString_003a9814" * (cast_expression "(code *)PTR_AcquireString_003a9814" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" identifier = identifier) ;) (if_statement "if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }" if (parenthesized_expression "(puVar11 == (ushort *)0x0)" ( (binary_expression "puVar11 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }" { (labeled_statement "LAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);" statement_identifier : (expression_statement "(*(code *)PTR_DestroyString_003a9074)(unaff_s6);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" ( (pointer_expression "*(code *)PTR_DestroyString_003a9074" * (cast_expression "(code *)PTR_DestroyString_003a9074" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier ))) ;)) (expression_statement "uVar48 = 0x10e;" (assignment_expression "uVar48 = 0x10e" identifier = number_literal) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_LAB_003a88e0 + 0x16f8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x16f8)" ( (binary_expression "PTR_LAB_003a88e0 + 0x16f8" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)0x190;" (assignment_expression "local_30d8._0_4_ = (ushort *)0x190" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)0x190" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "uVar13 = 0x1000;" (assignment_expression "uVar13 = 0x1000" identifier = number_literal) ;) (expression_statement "puVar50 = (ushort *)0x5c;" (assignment_expression "puVar50 = (ushort *)0x5c" identifier = (cast_expression "(ushort *)0x5c" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);" statement_identifier : (expression_statement "uVar69 = CONCAT44(puVar11,uVar13);" (assignment_expression "uVar69 = CONCAT44(puVar11,uVar13)" identifier = (call_expression "CONCAT44(puVar11,uVar13)" identifier (argument_list "(puVar11,uVar13)" ( identifier , identifier )))) ;)) (expression_statement "unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (if_statement "if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;" if (parenthesized_expression "(unaff_s7 == (ushort *)0x5c)" ( (binary_expression "unaff_s7 == (ushort *)0x5c" identifier == (cast_expression "(ushort *)0x5c" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00254578;" goto statement_identifier ;)) (while_statement "while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }" while (parenthesized_expression "((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d)))" ( (parenthesized_expression "(puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))" ( (comma_expression "puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d)" (assignment_expression "puVar7 = PTR_SetImageProperty_003a9534" identifier = identifier) , (binary_expression "unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d)" (binary_expression "unaff_s7 != (ushort *)0xffffffff" identifier != (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d)" ( (comma_expression "iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d" (assignment_expression "iVar30 = (int)unaff_s8 - (int)puVar11" identifier = (binary_expression "(int)unaff_s8 - (int)puVar11" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "unaff_s7 != (ushort *)0x7d" identifier != (cast_expression "(ushort *)0x7d" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) )) (compound_statement "{\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }" { (while_statement "while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }" { (expression_statement "puVar35 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar35 = PTR_ReadBlobByte_003a97f0" identifier = identifier) ;) (expression_statement "puVar7 = PTR_ResizeQuantumMemory_003a9420;" (assignment_expression "puVar7 = PTR_ResizeQuantumMemory_003a9420" identifier = identifier) ;) (if_statement "if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }" if (parenthesized_expression "(uVar13 <= iVar30 + 1U)" ( (binary_expression "uVar13 <= iVar30 + 1U" identifier <= (binary_expression "iVar30 + 1U" identifier + number_literal)) )) (compound_statement "{\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }" { (expression_statement "uVar13 = uVar13 * 2;" (assignment_expression "uVar13 = uVar13 * 2" identifier = (binary_expression "uVar13 * 2" identifier * number_literal)) ;) (expression_statement "*(byte *)unaff_s8 = 0;" (assignment_expression "*(byte *)unaff_s8 = 0" (pointer_expression "*(byte *)unaff_s8" * (cast_expression "(byte *)unaff_s8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);" (assignment_expression "puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1)" identifier = (cast_expression "(ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11,uVar13 + 0x1000,1)" ( identifier , (binary_expression "uVar13 + 0x1000" identifier + number_literal) , number_literal ))))) ;) (expression_statement "uVar69 = CONCAT44(puVar11,uVar13);" (assignment_expression "uVar69 = CONCAT44(puVar11,uVar13)" identifier = (call_expression "CONCAT44(puVar11,uVar13)" identifier (argument_list "(puVar11,uVar13)" ( identifier , identifier )))) ;) (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" identifier = identifier) ;) (if_statement "if (puVar11 == (ushort *)0x0) goto LAB_00254658;" if (parenthesized_expression "(puVar11 == (ushort *)0x0)" ( (binary_expression "puVar11 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00254658;" goto statement_identifier ;)) (expression_statement "iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);" (assignment_expression "iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11)" identifier = (call_expression "(*(code *)PTR_strlen_003a9338)(puVar11)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" ( (pointer_expression "*(code *)PTR_strlen_003a9338" * (cast_expression "(code *)PTR_strlen_003a9338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11)" ( identifier )))) ;) (expression_statement "unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);" (assignment_expression "unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1)" identifier = (cast_expression "(ushort *)((byte *)((int)puVar11 + iVar30) + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)((int)puVar11 + iVar30) + 1)" ( (binary_expression "(byte *)((int)puVar11 + iVar30) + 1" (cast_expression "(byte *)((int)puVar11 + iVar30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + iVar30)" ( (binary_expression "(int)puVar11 + iVar30" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) + number_literal) )))) ;) (expression_statement "*(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;" (assignment_expression "*(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7" (pointer_expression "*(byte *)((int)puVar11 + iVar30)" * (cast_expression "(byte *)((int)puVar11 + iVar30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + iVar30)" ( (binary_expression "(int)puVar11 + iVar30" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (cast_expression "(byte)unaff_s7" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_0025451c;" goto statement_identifier ;) })) (expression_statement "*(byte *)unaff_s8 = (byte)unaff_s7;" (assignment_expression "*(byte *)unaff_s8 = (byte)unaff_s7" (pointer_expression "*(byte *)unaff_s8" * (cast_expression "(byte *)unaff_s8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(byte)unaff_s7" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "unaff_s8 = (ushort *)((int)unaff_s8 + 1);" (assignment_expression "unaff_s8 = (ushort *)((int)unaff_s8 + 1)" identifier = (cast_expression "(ushort *)((int)unaff_s8 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s8 + 1)" ( (binary_expression "(int)unaff_s8 + 1" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);" (assignment_expression "unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)puVar35)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar35)(puVar8)" (parenthesized_expression "(*(code *)puVar35)" ( (pointer_expression "*(code *)puVar35" * (cast_expression "(code *)puVar35" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (if_statement "if (unaff_s7 != (ushort *)0x5c) break;" if (parenthesized_expression "(unaff_s7 != (ushort *)0x5c)" ( (binary_expression "unaff_s7 != (ushort *)0x5c" identifier != (cast_expression "(ushort *)0x5c" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" statement_identifier : (expression_statement "unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;)) (expression_statement "iVar30 = (int)unaff_s8 - (int)puVar11;" (assignment_expression "iVar30 = (int)unaff_s8 - (int)puVar11" identifier = (binary_expression "(int)unaff_s8 - (int)puVar11" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) })) (expression_statement "puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;" (assignment_expression "puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928" identifier = (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928" identifier + number_literal)) ;) (expression_statement "*(byte *)unaff_s8 = 0;" (assignment_expression "*(byte *)unaff_s8 = 0" (pointer_expression "*(byte *)unaff_s8" * (cast_expression "(byte *)unaff_s8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar38 = puVar11;" (assignment_expression "puVar38 = puVar11" identifier = identifier) ;) (expression_statement "(*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);" (call_expression "(*(code *)puVar7)(puVar8,puVar35,puVar11,param_2)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,puVar35,puVar11,param_2)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(puVar11);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(puVar11)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" ( (pointer_expression "*(code *)PTR_DestroyString_003a9074" * (cast_expression "(code *)PTR_DestroyString_003a9074" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11)" ( identifier ))) ;) (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) }) (else_clause "else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }" else (if_statement "if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }" if (parenthesized_expression "((uVar2 & 0x800) == 0)" ( (binary_expression "(uVar2 & 0x800) == 0" (parenthesized_expression "(uVar2 & 0x800)" ( (binary_expression "uVar2 & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }" { (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) }) (else_clause "else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }" else (compound_statement "{\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }" { (expression_statement "puVar50 = unaff_s5;" (assignment_expression "puVar50 = unaff_s5" identifier = identifier) ;) (if_statement "if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }" if (parenthesized_expression "(puVar11 == (ushort *)0x3d)" ( (binary_expression "puVar11 == (ushort *)0x3d" identifier == (cast_expression "(ushort *)0x3d" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar12 = 0x7a;\n              }" { (expression_statement "iVar12 = 0x7a;" (assignment_expression "iVar12 = 0x7a" identifier = number_literal) ;) }) (else_clause "else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }" else (compound_statement "{\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }" { (expression_statement "uVar69 = 0xffffffff0000003d;" (assignment_expression "uVar69 = 0xffffffff0000003d" identifier = number_literal) ;) (do_statement "do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);" do (compound_statement "{\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                }" { (if_statement "if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }" if (parenthesized_expression "((uint)((int)puVar50 - (int)unaff_s5) < 0xfff)" ( (binary_expression "(uint)((int)puVar50 - (int)unaff_s5) < 0xfff" (call_expression "(uint)((int)puVar50 - (int)unaff_s5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar50 - (int)unaff_s5)" ( (binary_expression "(int)puVar50 - (int)unaff_s5" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < number_literal) )) (compound_statement "{\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }" { (expression_statement "*(byte *)puVar50 = (byte)puVar11;" (assignment_expression "*(byte *)puVar50 = (byte)puVar11" (pointer_expression "*(byte *)puVar50" * (cast_expression "(byte *)puVar50" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(byte)puVar11" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "puVar50 = (ushort *)((int)puVar50 + 1);" (assignment_expression "puVar50 = (ushort *)((int)puVar50 + 1)" identifier = (cast_expression "(ushort *)((int)puVar50 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 1)" ( (binary_expression "(int)puVar50 + 1" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (if_statement "if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }" if (parenthesized_expression "(puVar11 == (ushort *)0xffffffff)" ( (binary_expression "puVar11 == (ushort *)0xffffffff" identifier == (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }" { (expression_statement "iVar30 = *(int *)puVar9;" (assignment_expression "iVar30 = *(int *)puVar9" identifier = (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar12 = -2;" (assignment_expression "iVar12 = -2" identifier = number_literal) ;) (expression_statement "uVar69 = 0xffffffff0000003d;" (assignment_expression "uVar69 = 0xffffffff0000003d" identifier = number_literal) ;) (goto_statement "goto LAB_00253a18;" goto statement_identifier ;) })) }) while (parenthesized_expression "(puVar11 != (ushort *)0x3d)" ( (binary_expression "puVar11 != (ushort *)0x3d" identifier != (cast_expression "(ushort *)0x3d" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "iVar30 = *(int *)puVar9;" (assignment_expression "iVar30 = *(int *)puVar9" identifier = (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar12 = 0x7a;" (assignment_expression "iVar12 = 0x7a" identifier = number_literal) ;) }))) (labeled_statement "LAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);" statement_identifier : (expression_statement "uVar13 = (uint)((ulonglong)uVar69 >> 0x20);" (assignment_expression "uVar13 = (uint)((ulonglong)uVar69 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar69 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar69 >> 0x20)" ( (binary_expression "(ulonglong)uVar69 >> 0x20" (cast_expression "(ulonglong)uVar69" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "uVar36 = (uint)uVar69;" (assignment_expression "uVar36 = (uint)uVar69" identifier = (cast_expression "(uint)uVar69" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(byte *)puVar50 = 0;" (assignment_expression "*(byte *)puVar50 = 0" (pointer_expression "*(byte *)puVar50" * (cast_expression "(byte *)puVar50" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar2 = *(ushort *)(iVar30 + iVar12);" (assignment_expression "uVar2 = *(ushort *)(iVar30 + iVar12)" identifier = (pointer_expression "*(ushort *)(iVar30 + iVar12)" * (cast_expression "(ushort *)(iVar30 + iVar12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + iVar12)" ( (binary_expression "iVar30 + iVar12" identifier + identifier) ))))) ;) (while_statement "while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }" while (parenthesized_expression "((uVar2 & 0x20) != 0)" ( (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }" { (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (expression_statement "uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);" (assignment_expression "uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2)" identifier = (pointer_expression "*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2)" * (cast_expression "(ushort *)(*(int *)puVar9 + (int)puVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar9 + (int)puVar11 * 2)" ( (binary_expression "*(int *)puVar9 + (int)puVar11 * 2" (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "(int)puVar11 * 2" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "unaff_s7 = unaff_s6;" (assignment_expression "unaff_s7 = unaff_s6" identifier = identifier) ;) (if_statement "if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }" if (parenthesized_expression "(puVar11 == (ushort *)0x3d)" ( (binary_expression "puVar11 == (ushort *)0x3d" identifier == (cast_expression "(ushort *)0x3d" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }" { (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (if_statement "if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }" if (parenthesized_expression "((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   )" ( (binary_expression "(puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)" (parenthesized_expression "(puVar11 == (ushort *)0x7d)" ( (binary_expression "puVar11 == (ushort *)0x7d" identifier == (cast_expression "(ushort *)0x7d" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)" ( (comma_expression "uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff" (assignment_expression "uVar13 = 0xfff" identifier = number_literal) , (binary_expression "puVar11 == (ushort *)0xffffffff" identifier == (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }" { (expression_statement "uVar69 = CONCAT44(uVar13,uVar36);" (assignment_expression "uVar69 = CONCAT44(uVar13,uVar36)" identifier = (call_expression "CONCAT44(uVar13,uVar36)" identifier (argument_list "(uVar13,uVar36)" ( identifier , identifier )))) ;) }) (else_clause "else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }" else (compound_statement "{\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }" { (expression_statement "uVar36 = 0x7d;" (assignment_expression "uVar36 = 0x7d" identifier = number_literal) ;) (do_statement "do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));" do (compound_statement "{\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  }" { (expression_statement "iVar30 = (int)unaff_s7 - (int)unaff_s6;" (assignment_expression "iVar30 = (int)unaff_s7 - (int)unaff_s6" identifier = (binary_expression "(int)unaff_s7 - (int)unaff_s6" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" identifier = identifier) ;) (while_statement "while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }" { (expression_statement "puVar50 = unaff_s7;" (assignment_expression "puVar50 = unaff_s7" identifier = identifier) ;) (expression_statement "puVar7 = PTR_ResizeQuantumMemory_003a9420;" (assignment_expression "puVar7 = PTR_ResizeQuantumMemory_003a9420" identifier = identifier) ;) (if_statement "if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }" if (parenthesized_expression "(uVar13 <= iVar30 + 1U)" ( (binary_expression "uVar13 <= iVar30 + 1U" identifier <= (binary_expression "iVar30 + 1U" identifier + number_literal)) )) (compound_statement "{\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }" { (expression_statement "uVar13 = uVar13 * 2;" (assignment_expression "uVar13 = uVar13 * 2" identifier = (binary_expression "uVar13 * 2" identifier * number_literal)) ;) (expression_statement "*(byte *)puVar50 = 0;" (assignment_expression "*(byte *)puVar50 = 0" (pointer_expression "*(byte *)puVar50" * (cast_expression "(byte *)puVar50" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);" (assignment_expression "unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1)" identifier = (cast_expression "(ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6,uVar13 + 0x1000,1)" ( identifier , (binary_expression "uVar13 + 0x1000" identifier + number_literal) , number_literal ))))) ;) (expression_statement "unaff_s7 = puVar50;" (assignment_expression "unaff_s7 = puVar50" identifier = identifier) ;) (if_statement "if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;" if (parenthesized_expression "(unaff_s6 == (ushort *)0x0)" ( (binary_expression "unaff_s6 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00254848;" goto statement_identifier ;)) (expression_statement "iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);" (assignment_expression "iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6)" identifier = (call_expression "(*(code *)PTR_strlen_003a9338)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" ( (pointer_expression "*(code *)PTR_strlen_003a9338" * (cast_expression "(code *)PTR_strlen_003a9338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier )))) ;) (expression_statement "puVar50 = (ushort *)((int)unaff_s6 + iVar30);" (assignment_expression "puVar50 = (ushort *)((int)unaff_s6 + iVar30)" identifier = (cast_expression "(ushort *)((int)unaff_s6 + iVar30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s6 + iVar30)" ( (binary_expression "(int)unaff_s6 + iVar30" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) })) (expression_statement "puVar7 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar7 = PTR_ReadBlobByte_003a97f0" identifier = identifier) ;) (expression_statement "uVar3 = CONCAT44(uVar13,0x7d);" (assignment_expression "uVar3 = CONCAT44(uVar13,0x7d)" identifier = (call_expression "CONCAT44(uVar13,0x7d)" identifier (argument_list "(uVar13,0x7d)" ( identifier , number_literal )))) ;) (expression_statement "uVar69 = CONCAT44(uVar13,0x7d);" (assignment_expression "uVar69 = CONCAT44(uVar13,0x7d)" identifier = (call_expression "CONCAT44(uVar13,0x7d)" identifier (argument_list "(uVar13,0x7d)" ( identifier , number_literal )))) ;) (expression_statement "*(byte *)puVar50 = (byte)puVar11;" (assignment_expression "*(byte *)puVar50 = (byte)puVar11" (pointer_expression "*(byte *)puVar50" * (cast_expression "(byte *)puVar50" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(byte)puVar11" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "unaff_s7 = (ushort *)((int)puVar50 + 1);" (assignment_expression "unaff_s7 = (ushort *)((int)puVar50 + 1)" identifier = (cast_expression "(ushort *)((int)puVar50 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 1)" ( (binary_expression "(int)puVar50 + 1" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar11 = (ushort *)(*(code *)puVar7)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)puVar7)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)puVar7)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar7)(puVar8)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (if_statement "if (puVar11 != (ushort *)0x5c) break;" if (parenthesized_expression "(puVar11 != (ushort *)0x5c)" ( (binary_expression "puVar11 != (ushort *)0x5c" identifier != (cast_expression "(ushort *)0x5c" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (expression_statement "puVar7 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar7 = PTR_ReadBlobByte_003a97f0" identifier = identifier) ;) (if_statement "if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }" if (parenthesized_expression "(puVar11 == (ushort *)0x7d)" ( (binary_expression "puVar11 == (ushort *)0x7d" identifier == (cast_expression "(ushort *)0x7d" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }" { (expression_statement "*(byte *)((int)puVar50 + 1) = 0x7d;" (assignment_expression "*(byte *)((int)puVar50 + 1) = 0x7d" (pointer_expression "*(byte *)((int)puVar50 + 1)" * (cast_expression "(byte *)((int)puVar50 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar50 + 1)" ( (binary_expression "(int)puVar50 + 1" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "unaff_s7 = puVar50 + 1;" (assignment_expression "unaff_s7 = puVar50 + 1" identifier = (binary_expression "puVar50 + 1" identifier + number_literal)) ;) (expression_statement "puVar11 = (ushort *)(*(code *)puVar7)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)puVar7)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)puVar7)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar7)(puVar8)" (parenthesized_expression "(*(code *)puVar7)" ( (pointer_expression "*(code *)puVar7" * (cast_expression "(code *)puVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (break_statement "break;" break ;) })) (if_statement "if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;" if (parenthesized_expression "(*(byte *)unaff_s6 != 0x7b)" ( (binary_expression "*(byte *)unaff_s6 != 0x7b" (pointer_expression "*(byte *)unaff_s6" * (cast_expression "(byte *)unaff_s6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (goto_statement "goto LAB_002547c4;" goto statement_identifier ;)) (expression_statement "iVar30 = (int)unaff_s7 - (int)unaff_s6;" (assignment_expression "iVar30 = (int)unaff_s7 - (int)unaff_s6" identifier = (binary_expression "(int)unaff_s7 - (int)unaff_s6" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" identifier = identifier) ;) (expression_statement "uVar69 = uVar3;" (assignment_expression "uVar69 = uVar3" identifier = identifier) ;) (if_statement "if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;" if (parenthesized_expression "(puVar11 == (ushort *)0xffffffff)" ( (binary_expression "puVar11 == (ushort *)0xffffffff" identifier == (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto joined_r0x00254fe4;" goto statement_identifier ;)) })) (if_statement "if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;" if (parenthesized_expression "(*(byte *)unaff_s6 == 0x7b)" ( (binary_expression "*(byte *)unaff_s6 == 0x7b" (pointer_expression "*(byte *)unaff_s6" * (cast_expression "(byte *)unaff_s6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (goto_statement "goto LAB_002547e0;" goto statement_identifier ;)) (labeled_statement "LAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;" statement_identifier : (if_statement "if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;" if (parenthesized_expression "((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)" ( (binary_expression "(*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20)" ( (binary_expression "*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20" (pointer_expression "*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2)" * (cast_expression "(ushort *)(*(int *)puVar9 + (int)puVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar9 + (int)puVar11 * 2)" ( (binary_expression "*(int *)puVar9 + (int)puVar11 * 2" (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "(int)puVar11 * 2" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00253a68;" goto statement_identifier ;))) (labeled_statement "LAB_002547e0:\n                    uVar69 = uVar3;" statement_identifier : (expression_statement "uVar69 = uVar3;" (assignment_expression "uVar69 = uVar3" identifier = identifier) ;)) }) while (parenthesized_expression "((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff))" ( (binary_expression "(puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff)" (parenthesized_expression "(puVar11 != (ushort *)0x7d)" ( (binary_expression "puVar11 != (ushort *)0x7d" identifier != (cast_expression "(ushort *)0x7d" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar11 != (ushort *)0xffffffff)" ( (binary_expression "puVar11 != (ushort *)0xffffffff" identifier != (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ;) }))) (labeled_statement "joined_r0x00254fe4:\n                unaff_s4 = puVar50;" statement_identifier : (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" identifier = identifier) ;)) (if_statement "if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }" if (parenthesized_expression "(unaff_s6 == (ushort *)0x0)" ( (binary_expression "unaff_s6 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }" { (labeled_statement "LAB_00254848:\n                  uVar48 = 0x14c;" statement_identifier : (expression_statement "uVar48 = 0x14c;" (assignment_expression "uVar48 = 0x14c" identifier = number_literal) ;)) (goto_statement "goto LAB_00254850;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00253a68:\n              *(byte *)unaff_s7 = 0;" statement_identifier : (expression_statement "*(byte *)unaff_s7 = 0;" (assignment_expression "*(byte *)unaff_s7 = 0" (pointer_expression "*(byte *)unaff_s7" * (cast_expression "(byte *)unaff_s7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;)) (if_statement "if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }" if (parenthesized_expression "(*(byte *)unaff_s6 == 0x7b)" ( (binary_expression "*(byte *)unaff_s6 == 0x7b" (pointer_expression "*(byte *)unaff_s6" * (cast_expression "(byte *)unaff_s6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }" { (expression_statement "uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);" (assignment_expression "uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6)" identifier = (call_expression "(*(code *)PTR_strlen_003a9338)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" ( (pointer_expression "*(code *)PTR_strlen_003a9338" * (cast_expression "(code *)PTR_strlen_003a9338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48)" ( identifier , (cast_expression "(byte *)((int)unaff_s6 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s6 + 1)" ( (binary_expression "(int)unaff_s6 + 1" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , identifier ))) ;) })) (expression_statement "uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;" (assignment_expression "uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff" identifier = (binary_expression "local_1044[0]._0_1_ - 0x41 & 0xff" (binary_expression "local_1044[0]._0_1_ - 0x41" (field_expression "local_1044[0]._0_1_" (subscript_expression "local_1044[0]" identifier [ number_literal ]) . field_identifier) - number_literal) & number_literal)) ;) (if_statement "if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }" if (parenthesized_expression "(uVar13 < 0x37)" ( (binary_expression "uVar13 < 0x37" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }" { (expression_statement "iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();" (assignment_expression "iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380))" ( (binary_expression "&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar6 + uVar13 * 4 + -0x7380)" * (cast_expression "(int *)(puVar6 + uVar13 * 4 + -0x7380)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + uVar13 * 4 + -0x7380)" ( (binary_expression "puVar6 + uVar13 * 4 + -0x7380" (binary_expression "puVar6 + uVar13 * 4" identifier + (binary_expression "uVar13 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar10;" return identifier ;) })) (expression_statement "puVar38 = unaff_s6;" (assignment_expression "puVar38 = unaff_s6" identifier = identifier) ;) (expression_statement "(*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);" (call_expression "(*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2)" (parenthesized_expression "(*(code *)PTR_SetImageProperty_003a9534)" ( (pointer_expression "*(code *)PTR_SetImageProperty_003a9534" * (cast_expression "(code *)PTR_SetImageProperty_003a9534" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,unaff_s5,unaff_s6,param_2)" ( identifier , identifier , identifier , identifier ))) ;) }))))) (expression_statement "iVar30 = *(int *)puVar9;" (assignment_expression "iVar30 = *(int *)puVar9" identifier = (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2)" identifier = (pointer_expression "*(ushort *)(iVar30 + (int)puVar11 * 2)" * (cast_expression "(ushort *)(iVar30 + (int)puVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + (int)puVar11 * 2)" ( (binary_expression "iVar30 + (int)puVar11 * 2" identifier + (binary_expression "(int)puVar11 * 2" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if ((uVar2 & 0x20) == 0) goto LAB_0025399c;" if (parenthesized_expression "((uVar2 & 0x20) == 0)" ( (binary_expression "(uVar2 & 0x20) == 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0025399c;" goto statement_identifier ;)) (do_statement "do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);" do (compound_statement "{\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            }" { (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (expression_statement "iVar30 = *(int *)puVar9;" (assignment_expression "iVar30 = *(int *)puVar9" identifier = (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2)" identifier = (pointer_expression "*(ushort *)(iVar30 + (int)puVar11 * 2)" * (cast_expression "(ushort *)(iVar30 + (int)puVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + (int)puVar11 * 2)" ( (binary_expression "iVar30 + (int)puVar11 * 2" identifier + (binary_expression "(int)puVar11 * 2" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) }) while (parenthesized_expression "((uVar2 & 0x20) != 0)" ( (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) != number_literal) )) ;) (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" identifier = identifier) ;) (if_statement "if ((uVar2 & 0x80) == 0) break;" if (parenthesized_expression "((uVar2 & 0x80) == 0)" ( (binary_expression "(uVar2 & 0x80) == 0" (parenthesized_expression "(uVar2 & 0x80)" ( (binary_expression "uVar2 & 0x80" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(unaff_s6);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" ( (pointer_expression "*(code *)PTR_DestroyString_003a9074" * (cast_expression "(code *)PTR_DestroyString_003a9074" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s6)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);" (assignment_expression "iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474)" identifier = (call_expression "(*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474)" (parenthesized_expression "(*(code *)PTR_LocaleCompare_003a9110)" ( (pointer_expression "*(code *)PTR_LocaleCompare_003a9110" * (cast_expression "(code *)PTR_LocaleCompare_003a9110" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474)" ( identifier , (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474" identifier + number_literal) )))) ;) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" identifier = identifier) ;) (if_statement "if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }" if (parenthesized_expression "((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U))" ( (binary_expression "(((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)" (parenthesized_expression "(((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162)))))))" ( (binary_expression "((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))" (parenthesized_expression "((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0))))" ( (binary_expression "(((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))" (parenthesized_expression "(((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0))" ( (binary_expression "((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)" (parenthesized_expression "((iVar30 != 0) || (*(int *)puVar8 == 0))" ( (binary_expression "(iVar30 != 0) || (*(int *)puVar8 == 0)" (parenthesized_expression "(iVar30 != 0)" ( (binary_expression "iVar30 != 0" identifier != number_literal) )) || (parenthesized_expression "(*(int *)puVar8 == 0)" ( (binary_expression "*(int *)puVar8 == 0" (pointer_expression "*(int *)puVar8" * (cast_expression "(int *)puVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) ))) )) || (parenthesized_expression "(*(int *)(puVar8 + 4) == 0)" ( (binary_expression "*(int *)(puVar8 + 4) == 0" (pointer_expression "*(int *)(puVar8 + 4)" * (cast_expression "(int *)(puVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) == number_literal) ))) )) || (parenthesized_expression "((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))" ( (parenthesized_expression "(*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0))" ( (binary_expression "*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)" (binary_expression "*(int *)(puVar8 + 0xc) == 0" (pointer_expression "*(int *)(puVar8 + 0xc)" * (cast_expression "(int *)(puVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xc)" ( (binary_expression "puVar8 + 0xc" identifier + number_literal) )))) == number_literal) || (parenthesized_expression "(*(int *)(puVar8 + 0xe) == 0)" ( (binary_expression "*(int *)(puVar8 + 0xe) == 0" (pointer_expression "*(int *)(puVar8 + 0xe)" * (cast_expression "(int *)(puVar8 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xe)" ( (binary_expression "puVar8 + 0xe" identifier + number_literal) )))) == number_literal) ))) )) ))) )) || (parenthesized_expression "((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))" ( (parenthesized_expression "(0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162)))))" ( (binary_expression "0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))" (binary_expression "0x40 < *(uint *)(puVar8 + 0x160)" number_literal < (pointer_expression "*(uint *)(puVar8 + 0x160)" * (cast_expression "(uint *)(puVar8 + 0x160)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x160)" ( (binary_expression "puVar8 + 0x160" identifier + number_literal) ))))) || (parenthesized_expression "((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))" ( (parenthesized_expression "(0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162)))" ( (binary_expression "0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))" (binary_expression "0x38 < *(uint *)(puVar8 + 0x162)" number_literal < (pointer_expression "*(uint *)(puVar8 + 0x162)" * (cast_expression "(uint *)(puVar8 + 0x162)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x162)" ( (binary_expression "puVar8 + 0x162" identifier + number_literal) ))))) || (parenthesized_expression "(0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))" ( (binary_expression "0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162)" number_literal < (binary_expression "*(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162)" (pointer_expression "*(uint *)(puVar8 + 0x160)" * (cast_expression "(uint *)(puVar8 + 0x160)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x160)" ( (binary_expression "puVar8 + 0x160" identifier + number_literal) )))) + (pointer_expression "*(uint *)(puVar8 + 0x162)" * (cast_expression "(uint *)(puVar8 + 0x162)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x162)" ( (binary_expression "puVar8 + 0x162" identifier + number_literal) )))))) ))) )) ))) )) ))) )) || (parenthesized_expression "(0x3f < *(int *)(puVar8 + 0x10) - 1U)" ( (binary_expression "0x3f < *(int *)(puVar8 + 0x10) - 1U" number_literal < (binary_expression "*(int *)(puVar8 + 0x10) - 1U" (pointer_expression "*(int *)(puVar8 + 0x10)" * (cast_expression "(int *)(puVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x10)" ( (binary_expression "puVar8 + 0x10" identifier + number_literal) )))) - number_literal)) ))) )) (compound_statement "{\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }" { (expression_statement "uVar48 = 0x31d;" (assignment_expression "uVar48 = 0x31d" identifier = number_literal) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_courses_003a88ec + -400)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -400)" ( (binary_expression "PTR_s_courses_003a88ec + -400" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001a9" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (labeled_statement "LAB_002546ac:\n          local_30cc = param_1 + 0x1108;" statement_identifier : (expression_statement "local_30cc = param_1 + 0x1108;" (assignment_expression "local_30cc = param_1 + 0x1108" identifier = (binary_expression "param_1 + 0x1108" identifier + number_literal)) ;)) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,puVar50,puVar38,uVar48)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(puVar8);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(puVar8)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" ( (pointer_expression "*(code *)PTR_CloseBlob_003a9688" * (cast_expression "(code *)PTR_CloseBlob_003a9688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_DestroyImageList_003a9510)(puVar8);" (call_expression "(*(code *)PTR_DestroyImageList_003a9510)(puVar8)" (parenthesized_expression "(*(code *)PTR_DestroyImageList_003a9510)" ( (pointer_expression "*(code *)PTR_DestroyImageList_003a9510" * (cast_expression "(code *)PTR_DestroyImageList_003a9510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "param_1 = puVar9;" (assignment_expression "param_1 = puVar9" identifier = identifier) ;) (goto_statement "goto LAB_002546dc;" goto statement_identifier ;) })) (expression_statement "iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);" (assignment_expression "iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0)" identifier = (call_expression "(*(code *)PTR_GetMagickSignature_003a96ec)(0)" (parenthesized_expression "(*(code *)PTR_GetMagickSignature_003a96ec)" ( (pointer_expression "*(code *)PTR_GetMagickSignature_003a96ec" * (cast_expression "(code *)PTR_GetMagickSignature_003a96ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal )))) ;) (if_statement "if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }" if (parenthesized_expression "(iVar10 != iVar30)" ( (binary_expression "iVar10 != iVar30" identifier != identifier) )) (compound_statement "{\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }" { (expression_statement "uVar48 = 0x323;" (assignment_expression "uVar48 = 0x323" identifier = number_literal) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001bd;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001bd" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001bd" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001bd" & identifier))) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (if_statement "if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }" if (parenthesized_expression "(*(int *)(puVar8 + 0x102) != 0)" ( (binary_expression "*(int *)(puVar8 + 0x102) != 0" (pointer_expression "*(int *)(puVar8 + 0x102)" * (cast_expression "(int *)(puVar8 + 0x102)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x102)" ( (binary_expression "puVar8 + 0x102" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }" { (expression_statement "unaff_s6 = (ushort *)0x0;" (assignment_expression "unaff_s6 = (ushort *)0x0" identifier = (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar14 = (ushort *)0x1000;" (assignment_expression "puVar14 = (ushort *)0x1000" identifier = (cast_expression "(ushort *)0x1000" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);" (assignment_expression "puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" identifier = (cast_expression "(ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireString_003a9814)(0)" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" ( (pointer_expression "*(code *)PTR_AcquireString_003a9814" * (cast_expression "(code *)PTR_AcquireString_003a9814" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "*(ushort **)(puVar8 + 0x104) = puVar50;" (assignment_expression "*(ushort **)(puVar8 + 0x104) = puVar50" (pointer_expression "*(ushort **)(puVar8 + 0x104)" * (cast_expression "(ushort **)(puVar8 + 0x104)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x104)" ( (binary_expression "puVar8 + 0x104" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);" do (compound_statement "{\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          }" { (expression_statement "*(byte *)puVar50 = 0;" (assignment_expression "*(byte *)puVar50 = 0" (pointer_expression "*(byte *)puVar50" * (cast_expression "(byte *)puVar50" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar16 = puVar50;" (assignment_expression "puVar16 = puVar50" identifier = identifier) ;) (if_statement "if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }" if (parenthesized_expression "(puVar14 <= unaff_s6 + 0x800)" ( (binary_expression "puVar14 <= unaff_s6 + 0x800" identifier <= (binary_expression "unaff_s6 + 0x800" identifier + number_literal)) )) (compound_statement "{\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }" { (expression_statement "puVar14 = (ushort *)((int)puVar14 * 2);" (assignment_expression "puVar14 = (ushort *)((int)puVar14 * 2)" identifier = (cast_expression "(ushort *)((int)puVar14 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 * 2)" ( (binary_expression "(int)puVar14 * 2" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "uVar69 = CONCAT44(puVar14,0xffffffff);" (assignment_expression "uVar69 = CONCAT44(puVar14,0xffffffff)" identifier = (call_expression "CONCAT44(puVar14,0xffffffff)" identifier (argument_list "(puVar14,0xffffffff)" ( identifier , number_literal )))) ;) (expression_statement "puVar38 = (ushort *)0x1;" (assignment_expression "puVar38 = (ushort *)0x1" identifier = (cast_expression "(ushort *)0x1" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);" (assignment_expression "iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800)" identifier = (call_expression "(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800)" (parenthesized_expression "(*(code *)PTR_ResizeQuantumMemory_003a9420)" ( (pointer_expression "*(code *)PTR_ResizeQuantumMemory_003a9420" * (cast_expression "(code *)PTR_ResizeQuantumMemory_003a9420" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800)" ( (pointer_expression "*(undefined4 *)(puVar8 + 0x104)" * (cast_expression "(undefined4 *)(puVar8 + 0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x104)" ( (binary_expression "puVar8 + 0x104" identifier + number_literal) )))) , (binary_expression "puVar14 + 0x800" identifier + number_literal) )))) ;) (expression_statement "*(int *)(puVar8 + 0x104) = iVar10;" (assignment_expression "*(int *)(puVar8 + 0x104) = iVar10" (pointer_expression "*(int *)(puVar8 + 0x104)" * (cast_expression "(int *)(puVar8 + 0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x104)" ( (binary_expression "puVar8 + 0x104" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }" { (expression_statement "uVar48 = 0x341;" (assignment_expression "uVar48 = 0x341" identifier = number_literal) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);" (assignment_expression "local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001a9" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "puVar16 = (ushort *)(iVar10 + (int)unaff_s6);" (assignment_expression "puVar16 = (ushort *)(iVar10 + (int)unaff_s6)" identifier = (cast_expression "(ushort *)(iVar10 + (int)unaff_s6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + (int)unaff_s6)" ( (binary_expression "iVar10 + (int)unaff_s6" identifier + (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;) (expression_statement "uVar69 = CONCAT44(puVar14,0xffffffff);" (assignment_expression "uVar69 = CONCAT44(puVar14,0xffffffff)" identifier = (call_expression "CONCAT44(puVar14,0xffffffff)" identifier (argument_list "(puVar14,0xffffffff)" ( identifier , number_literal )))) ;) (if_statement "if (iVar10 == -1) break;" if (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar50 = (ushort *)((int)puVar16 + 1);" (assignment_expression "puVar50 = (ushort *)((int)puVar16 + 1)" identifier = (cast_expression "(ushort *)((int)puVar16 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + 1)" ( (binary_expression "(int)puVar16 + 1" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(byte *)puVar16 = (byte)iVar10;" (assignment_expression "*(byte *)puVar16 = (byte)iVar10" (pointer_expression "*(byte *)puVar16" * (cast_expression "(byte *)puVar16" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(byte)iVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "unaff_s6 = (ushort *)((int)unaff_s6 + 1);" (assignment_expression "unaff_s6 = (ushort *)((int)unaff_s6 + 1)" identifier = (cast_expression "(ushort *)((int)unaff_s6 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s6 + 1)" ( (binary_expression "(int)unaff_s6 + 1" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s4 = puVar16;" (assignment_expression "unaff_s4 = puVar16" identifier = identifier) ;) (expression_statement "uVar69 = CONCAT44(puVar14,0xffffffff);" (assignment_expression "uVar69 = CONCAT44(puVar14,0xffffffff)" identifier = (call_expression "CONCAT44(puVar14,0xffffffff)" identifier (argument_list "(puVar14,0xffffffff)" ( identifier , number_literal )))) ;) }) while (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) ;) })) (expression_statement "puVar50 = (ushort *)0x0;" (assignment_expression "puVar50 = (ushort *)0x0" identifier = (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);" (assignment_expression "unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8)" (parenthesized_expression "(*(code *)PTR_GetImageQuantumDepth_003a91e8)" ( (pointer_expression "*(code *)PTR_GetImageQuantumDepth_003a91e8" * (cast_expression "(code *)PTR_GetImageQuantumDepth_003a91e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (if_statement "if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }" if (parenthesized_expression "(*(int *)puVar8 == 2)" ( (binary_expression "*(int *)puVar8 == 2" (pointer_expression "*(int *)puVar8" * (cast_expression "(int *)puVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }" { (expression_statement "iVar10 = *(int *)(puVar8 + 0x12);" (assignment_expression "iVar10 = *(int *)(puVar8 + 0x12)" identifier = (pointer_expression "*(int *)(puVar8 + 0x12)" * (cast_expression "(int *)(puVar8 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x12)" ( (binary_expression "puVar8 + 0x12" identifier + number_literal) ))))) ;) (expression_statement "uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);" (assignment_expression "uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8)" identifier = (call_expression "(*(code *)PTR_GetBlobSize_003a94b8)(puVar8)" (parenthesized_expression "(*(code *)PTR_GetBlobSize_003a94b8)" ( (pointer_expression "*(code *)PTR_GetBlobSize_003a94b8" * (cast_expression "(code *)PTR_GetBlobSize_003a94b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;) (expression_statement "uVar13 = (uint)((int)unaff_s4 * 3) >> 3;" (assignment_expression "uVar13 = (uint)((int)unaff_s4 * 3) >> 3" identifier = (binary_expression "(uint)((int)unaff_s4 * 3) >> 3" (call_expression "(uint)((int)unaff_s4 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)unaff_s4 * 3)" ( (binary_expression "(int)unaff_s4 * 3" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal)) ;) (expression_statement "uVar36 = uVar13 * iVar10;" (assignment_expression "uVar36 = uVar13 * iVar10" identifier = (binary_expression "uVar13 * iVar10" identifier * identifier)) ;) (if_statement "if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }" if (parenthesized_expression "((int)((ulonglong)uVar69 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar69 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar69 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar69 >> 0x20)" ( (binary_expression "(ulonglong)uVar69 >> 0x20" (cast_expression "(ulonglong)uVar69" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }" { (expression_statement "uVar36 = (uint)((uint)uVar69 < uVar36);" (assignment_expression "uVar36 = (uint)((uint)uVar69 < uVar36)" identifier = (call_expression "(uint)((uint)uVar69 < uVar36)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar69 < uVar36)" ( (binary_expression "(uint)uVar69 < uVar36" (cast_expression "(uint)uVar69" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) ;) (expression_statement "uVar69 = CONCAT44(uVar13,uVar36);" (assignment_expression "uVar69 = CONCAT44(uVar13,uVar36)" identifier = (call_expression "CONCAT44(uVar13,uVar36)" identifier (argument_list "(uVar13,uVar36)" ( identifier , identifier )))) ;) (if_statement "if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" if (parenthesized_expression "(uVar36 != 0)" ( (binary_expression "uVar36 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" { (expression_statement "uVar48 = 0x37d;" (assignment_expression "uVar48 = 0x37d" identifier = number_literal) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_courses_003a88ec + 0x4a0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + 0x4a0)" ( (binary_expression "PTR_s_courses_003a88ec + 0x4a0" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001a9" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) })) (expression_statement "puVar50 = (ushort *)0x58;" (assignment_expression "puVar50 = (ushort *)0x58" identifier = (cast_expression "(ushort *)0x58" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);" (assignment_expression "iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1)" identifier = (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(puVar8 + 0x12) + 1)" ( (binary_expression "*(int *)(puVar8 + 0x12) + 1" (pointer_expression "*(int *)(puVar8 + 0x12)" * (cast_expression "(int *)(puVar8 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x12)" ( (binary_expression "puVar8 + 0x12" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*(int *)(puVar8 + 0x14) = iVar10;" (assignment_expression "*(int *)(puVar8 + 0x14) = iVar10" (pointer_expression "*(int *)(puVar8 + 0x14)" * (cast_expression "(int *)(puVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x14)" ( (binary_expression "puVar8 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }" { (expression_statement "uVar48 = 0x381;" (assignment_expression "uVar48 = 0x381" identifier = number_literal) ;) (labeled_statement "LAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);" statement_identifier : (expression_statement "uVar69 = CONCAT44(uVar13,uVar36);" (assignment_expression "uVar69 = CONCAT44(uVar13,uVar36)" identifier = (call_expression "CONCAT44(uVar13,uVar36)" identifier (argument_list "(uVar13,uVar36)" ( identifier , identifier )))) ;)) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_LAB_003a88e0 + 0x16f8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x16f8)" ( (binary_expression "PTR_LAB_003a88e0 + 0x16f8" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)0x190;" (assignment_expression "local_30d8._0_4_ = (ushort *)0x190" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)0x190" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" identifier = identifier) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "uVar69 = CONCAT44(uVar13,uVar36);" (assignment_expression "uVar69 = CONCAT44(uVar13,uVar36)" identifier = (call_expression "CONCAT44(uVar13,uVar36)" identifier (argument_list "(uVar13,uVar36)" ( identifier , identifier )))) ;) (if_statement "if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }" if (parenthesized_expression "(*(int *)(puVar8 + 0x12) != 0)" ( (binary_expression "*(int *)(puVar8 + 0x12) != 0" (pointer_expression "*(int *)(puVar8 + 0x12)" * (cast_expression "(int *)(puVar8 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x12)" ( (binary_expression "puVar8 + 0x12" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }" { (expression_statement "puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);" (assignment_expression "puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13)" identifier = (cast_expression "(ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" * (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(puVar8 + 0x12),uVar13)" ( (pointer_expression "*(int *)(puVar8 + 0x12)" * (cast_expression "(int *)(puVar8 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x12)" ( (binary_expression "puVar8 + 0x12" identifier + number_literal) )))) , identifier ))))) ;) (if_statement "if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }" if (parenthesized_expression "(puVar14 == (ushort *)0x0)" ( (binary_expression "puVar14 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }" { (expression_statement "uVar48 = 0x38a;" (assignment_expression "uVar48 = 0x38a" identifier = number_literal) ;) (expression_statement "uVar36 = 0;" (assignment_expression "uVar36 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00254850;" goto statement_identifier ;) })) (expression_statement "puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));" (assignment_expression "puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12))" identifier = (cast_expression "(ushort *)(uVar13 * *(int *)(puVar8 + 0x12))" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar13 * *(int *)(puVar8 + 0x12))" ( (binary_expression "uVar13 * *(int *)(puVar8 + 0x12)" identifier * (pointer_expression "*(int *)(puVar8 + 0x12)" * (cast_expression "(int *)(puVar8 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x12)" ( (binary_expression "puVar8 + 0x12" identifier + number_literal) ))))) )))) ;) (expression_statement "puVar38 = puVar14;" (assignment_expression "puVar38 = puVar14" identifier = identifier) ;) (expression_statement "iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8)" identifier = (call_expression "(*(code *)PTR_ReadBlob_003a8dac)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlob_003a8dac)" ( (pointer_expression "*(code *)PTR_ReadBlob_003a8dac" * (cast_expression "(code *)PTR_ReadBlob_003a8dac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;) (expression_statement "iVar30 = *(int *)(puVar8 + 0x12);" (assignment_expression "iVar30 = *(int *)(puVar8 + 0x12)" identifier = (pointer_expression "*(int *)(puVar8 + 0x12)" * (cast_expression "(int *)(puVar8 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x12)" ( (binary_expression "puVar8 + 0x12" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar30 * uVar13;" (assignment_expression "iVar12 = iVar30 * uVar13" identifier = (binary_expression "iVar30 * uVar13" identifier * identifier)) ;) (expression_statement "uVar69 = CONCAT44(iVar12,puVar14);" (assignment_expression "uVar69 = CONCAT44(iVar12,puVar14)" identifier = (call_expression "CONCAT44(iVar12,puVar14)" identifier (argument_list "(iVar12,puVar14)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" if (parenthesized_expression "(iVar12 != iVar10)" ( (binary_expression "iVar12 != iVar10" identifier != identifier) )) (compound_statement "{\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" { (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar14)" ( identifier ))) ;) (expression_statement "uVar48 = 0x390;" (assignment_expression "uVar48 = 0x390" identifier = number_literal) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_courses_003a88ec + 0x4a0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + 0x4a0)" ( (binary_expression "PTR_s_courses_003a88ec + 0x4a0" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001a9" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (if_statement "if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }" if (parenthesized_expression "(unaff_s4 == (ushort *)0x10)" ( (binary_expression "unaff_s4 == (ushort *)0x10" identifier == (cast_expression "(ushort *)0x10" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }" { (if_statement "if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }" if (parenthesized_expression "(0 < iVar30)" ( (binary_expression "0 < iVar30" number_literal < identifier) )) (compound_statement "{\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }" { (expression_statement "puVar16 = puVar14;" (assignment_expression "puVar16 = puVar14" identifier = identifier) ;) (expression_statement "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);" (assignment_expression "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28)" identifier = (cast_expression "(double *)(*(int *)(puVar8 + 0x14) + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x14) + 0x28)" ( (binary_expression "*(int *)(puVar8 + 0x14) + 0x28" (pointer_expression "*(int *)(puVar8 + 0x14)" * (cast_expression "(int *)(puVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x14)" ( (binary_expression "puVar8 + 0x14" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);" do (compound_statement "{\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                }" { (expression_statement "puVar33 = puVar16 + 3;" (assignment_expression "puVar33 = puVar16 + 3" identifier = (binary_expression "puVar16 + 3" identifier + number_literal)) ;) (expression_statement "*pdVar15 = (double)*puVar16;" (assignment_expression "*pdVar15 = (double)*puVar16" (pointer_expression "*pdVar15" * identifier) = (cast_expression "(double)*puVar16" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*puVar16" * identifier))) ;) (expression_statement "pdVar15[1] = (double)puVar16[1];" (assignment_expression "pdVar15[1] = (double)puVar16[1]" (subscript_expression "pdVar15[1]" identifier [ number_literal ]) = (cast_expression "(double)puVar16[1]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "puVar16[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);" (assignment_expression "puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8)" identifier = (cast_expression "(ushort *)((uint)*(byte *)(puVar16 + 2) << 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*(byte *)(puVar16 + 2) << 8)" ( (binary_expression "(uint)*(byte *)(puVar16 + 2) << 8" (binary_expression "(uint)*(byte *)(puVar16 + 2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(puVar16 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 2)" ( (binary_expression "puVar16 + 2" identifier + number_literal) )))) << number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(uint)puVar16[2];" (assignment_expression "puVar50 = (ushort *)(uint)puVar16[2]" identifier = (cast_expression "(ushort *)(uint)puVar16[2]" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)puVar16[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar16[2]" identifier [ number_literal ])))) ;) (expression_statement "pdVar15[2] = (double)(int)puVar50;" (assignment_expression "pdVar15[2] = (double)(int)puVar50" (subscript_expression "pdVar15[2]" identifier [ number_literal ]) = (cast_expression "(double)(int)puVar50" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar16 = puVar33;" (assignment_expression "puVar16 = puVar33" identifier = identifier) ;) (expression_statement "pdVar15 = pdVar15 + 0xb;" (assignment_expression "pdVar15 = pdVar15 + 0xb" identifier = (binary_expression "pdVar15 + 0xb" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar33 != puVar14 + iVar30 * 3)" ( (binary_expression "puVar33 != puVar14 + iVar30 * 3" identifier != (binary_expression "puVar14 + iVar30 * 3" identifier + (binary_expression "iVar30 * 3" identifier * number_literal))) )) ;) })) }) (else_clause "else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }" else (if_statement "if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }" if (parenthesized_expression "(unaff_s4 == (ushort *)0x20)" ( (binary_expression "unaff_s4 == (ushort *)0x20" identifier == (cast_expression "(ushort *)0x20" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }" { (if_statement "if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }" if (parenthesized_expression "(0 < iVar30)" ( (binary_expression "0 < iVar30" number_literal < identifier) )) (compound_statement "{\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }" { (expression_statement "dVar67 = *(double *)(puVar4 + 0x1418);" (assignment_expression "dVar67 = *(double *)(puVar4 + 0x1418)" identifier = (pointer_expression "*(double *)(puVar4 + 0x1418)" * (cast_expression "(double *)(puVar4 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x1418)" ( (binary_expression "puVar4 + 0x1418" identifier + number_literal) ))))) ;) (expression_statement "dVar66 = *(double *)(puVar5 + -0x5b00);" (assignment_expression "dVar66 = *(double *)(puVar5 + -0x5b00)" identifier = (pointer_expression "*(double *)(puVar5 + -0x5b00)" * (cast_expression "(double *)(puVar5 + -0x5b00)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x5b00)" ( (binary_expression "puVar5 + -0x5b00" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar14;" (assignment_expression "puVar16 = puVar14" identifier = identifier) ;) (expression_statement "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);" (assignment_expression "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28)" identifier = (cast_expression "(double *)(*(int *)(puVar8 + 0x14) + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x14) + 0x28)" ( (binary_expression "*(int *)(puVar8 + 0x14) + 0x28" (pointer_expression "*(int *)(puVar8 + 0x14)" * (cast_expression "(int *)(puVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x14)" ( (binary_expression "puVar8 + 0x14" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);" do (compound_statement "{\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                }" { (expression_statement "puVar38 = puVar16;" (assignment_expression "puVar38 = puVar16" identifier = identifier) ;) (expression_statement "dVar68 = (double)*(int *)puVar38;" (assignment_expression "dVar68 = (double)*(int *)puVar38" identifier = (cast_expression "(double)*(int *)puVar38" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)puVar38" * (cast_expression "(int *)puVar38" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (if_statement "if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }" if (parenthesized_expression "(*(int *)puVar38 < 0)" ( (binary_expression "*(int *)puVar38 < 0" (pointer_expression "*(int *)puVar38" * (cast_expression "(int *)puVar38" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < number_literal) )) (compound_statement "{\n                    dVar68 = dVar68 + dVar67;\n                  }" { (expression_statement "dVar68 = dVar68 + dVar67;" (assignment_expression "dVar68 = dVar68 + dVar67" identifier = (binary_expression "dVar68 + dVar67" identifier + identifier)) ;) })) (expression_statement "*pdVar15 = (double)(float)(dVar68 / in_f24_25);" (assignment_expression "*pdVar15 = (double)(float)(dVar68 / in_f24_25)" (pointer_expression "*pdVar15" * identifier) = (cast_expression "(double)(float)(dVar68 / in_f24_25)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)(dVar68 / in_f24_25)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar68 / in_f24_25)" ( (binary_expression "dVar68 / in_f24_25" identifier / identifier) ))))) ;) (expression_statement "dVar68 = (double)*(int *)(puVar38 + 2);" (assignment_expression "dVar68 = (double)*(int *)(puVar38 + 2)" identifier = (cast_expression "(double)*(int *)(puVar38 + 2)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar38 + 2)" * (cast_expression "(int *)(puVar38 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 2)" ( (binary_expression "puVar38 + 2" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }" if (parenthesized_expression "(*(int *)(puVar38 + 2) < 0)" ( (binary_expression "*(int *)(puVar38 + 2) < 0" (pointer_expression "*(int *)(puVar38 + 2)" * (cast_expression "(int *)(puVar38 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 2)" ( (binary_expression "puVar38 + 2" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                    dVar68 = dVar68 + dVar67;\n                  }" { (expression_statement "dVar68 = dVar68 + dVar67;" (assignment_expression "dVar68 = dVar68 + dVar67" identifier = (binary_expression "dVar68 + dVar67" identifier + identifier)) ;) })) (expression_statement "pdVar15[1] = (double)(float)(dVar68 / dVar66);" (assignment_expression "pdVar15[1] = (double)(float)(dVar68 / dVar66)" (subscript_expression "pdVar15[1]" identifier [ number_literal ]) = (cast_expression "(double)(float)(dVar68 / dVar66)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)(dVar68 / dVar66)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar68 / dVar66)" ( (binary_expression "dVar68 / dVar66" identifier / identifier) ))))) ;) (expression_statement "puVar50 = *(ushort **)(puVar38 + 4);" (assignment_expression "puVar50 = *(ushort **)(puVar38 + 4)" identifier = (pointer_expression "*(ushort **)(puVar38 + 4)" * (cast_expression "(ushort **)(puVar38 + 4)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 4)" ( (binary_expression "puVar38 + 4" identifier + number_literal) ))))) ;) (expression_statement "dVar68 = (double)(int)puVar50;" (assignment_expression "dVar68 = (double)(int)puVar50" identifier = (cast_expression "(double)(int)puVar50" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }" if (parenthesized_expression "((int)puVar50 < 0)" ( (binary_expression "(int)puVar50 < 0" (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    dVar68 = dVar68 + in_f22_23;\n                  }" { (expression_statement "dVar68 = dVar68 + in_f22_23;" (assignment_expression "dVar68 = dVar68 + in_f22_23" identifier = (binary_expression "dVar68 + in_f22_23" identifier + identifier)) ;) })) (expression_statement "pdVar15[2] = (double)(float)(dVar68 / dVar66);" (assignment_expression "pdVar15[2] = (double)(float)(dVar68 / dVar66)" (subscript_expression "pdVar15[2]" identifier [ number_literal ]) = (cast_expression "(double)(float)(dVar68 / dVar66)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)(dVar68 / dVar66)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar68 / dVar66)" ( (binary_expression "dVar68 / dVar66" identifier / identifier) ))))) ;) (expression_statement "puVar16 = puVar38 + 6;" (assignment_expression "puVar16 = puVar38 + 6" identifier = (binary_expression "puVar38 + 6" identifier + number_literal)) ;) (expression_statement "pdVar15 = pdVar15 + 0xb;" (assignment_expression "pdVar15 = pdVar15 + 0xb" identifier = (binary_expression "pdVar15 + 0xb" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar38 + 6 != puVar14 + iVar30 * 6)" ( (binary_expression "puVar38 + 6 != puVar14 + iVar30 * 6" (binary_expression "puVar38 + 6" identifier + number_literal) != (binary_expression "puVar14 + iVar30 * 6" identifier + (binary_expression "iVar30 * 6" identifier * number_literal))) )) ;) })) }) (else_clause "else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }" else (compound_statement "{\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }" { (if_statement "if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }" if (parenthesized_expression "(unaff_s4 != (ushort *)&DAT_00000008)" ( (binary_expression "unaff_s4 != (ushort *)&DAT_00000008" identifier != (cast_expression "(ushort *)&DAT_00000008" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000008" & identifier))) )) (compound_statement "{\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }" { (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar14)" ( identifier ))) ;) (expression_statement "uVar48 = 0x398;" (assignment_expression "uVar48 = 0x398" identifier = number_literal) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x5aa8)" ( (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5aa8" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001a9" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (expression_statement "uVar69 = CONCAT44(iVar12,puVar14);" (assignment_expression "uVar69 = CONCAT44(iVar12,puVar14)" identifier = (call_expression "CONCAT44(iVar12,puVar14)" identifier (argument_list "(iVar12,puVar14)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "puVar50 = (ushort *)(iVar30 * 2);" (assignment_expression "puVar50 = (ushort *)(iVar30 * 2)" identifier = (cast_expression "(ushort *)(iVar30 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 * 2)" ( (binary_expression "iVar30 * 2" identifier * number_literal) )))) ;) (if_statement "if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }" if (parenthesized_expression "(0 < iVar30)" ( (binary_expression "0 < iVar30" number_literal < identifier) )) (compound_statement "{\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }" { (expression_statement "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);" (assignment_expression "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28)" identifier = (cast_expression "(double *)(*(int *)(puVar8 + 0x14) + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x14) + 0x28)" ( (binary_expression "*(int *)(puVar8 + 0x14) + 0x28" (pointer_expression "*(int *)(puVar8 + 0x14)" * (cast_expression "(int *)(puVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x14)" ( (binary_expression "puVar8 + 0x14" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar16 = puVar14;" (assignment_expression "puVar16 = puVar14" identifier = identifier) ;) (do_statement "do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);" do (compound_statement "{\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                }" { (expression_statement "puVar33 = (ushort *)((int)puVar16 + 3);" (assignment_expression "puVar33 = (ushort *)((int)puVar16 + 3)" identifier = (cast_expression "(ushort *)((int)puVar16 + 3)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + 3)" ( (binary_expression "(int)puVar16 + 3" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);" (assignment_expression "*pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21)" (pointer_expression "*pdVar15" * identifier) = (cast_expression "(double)(float)((double)*(byte *)puVar16 * in_f20_21)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)((double)*(byte *)puVar16 * in_f20_21)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(byte *)puVar16 * in_f20_21)" ( (binary_expression "(double)*(byte *)puVar16 * in_f20_21" (cast_expression "(double)*(byte *)puVar16" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(byte *)puVar16" * (cast_expression "(byte *)puVar16" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) * identifier) ))))) ;) (expression_statement "pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);" (assignment_expression "pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21)" (subscript_expression "pdVar15[1]" identifier [ number_literal ]) = (cast_expression "(double)(float)((double)(byte)*puVar16 * in_f20_21)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)((double)(byte)*puVar16 * in_f20_21)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)(byte)*puVar16 * in_f20_21)" ( (binary_expression "(double)(byte)*puVar16 * in_f20_21" (binary_expression "(double)(byte)*puVar16" (cast_expression "(double)(byte)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(byte)" ( identifier ))) * identifier) * identifier) ))))) ;) (expression_statement "puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);" (assignment_expression "puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1)" identifier = (binary_expression "(ushort *)(uint)*(byte *)(puVar16 + 1)" (cast_expression "(ushort *)(uint)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(puVar16 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 1)" ( (binary_expression "puVar16 + 1" identifier + number_literal) ))))) ;) (expression_statement "pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);" (assignment_expression "pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21)" (subscript_expression "pdVar15[2]" identifier [ number_literal ]) = (cast_expression "(double)(float)((double)(int)puVar50 * in_f20_21)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)((double)(int)puVar50 * in_f20_21)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)(int)puVar50 * in_f20_21)" ( (binary_expression "(double)(int)puVar50 * in_f20_21" (cast_expression "(double)(int)puVar50" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar50" ( (type_descriptor "int" primitive_type) ) identifier)) * identifier) ))))) ;) (expression_statement "pdVar15 = pdVar15 + 0xb;" (assignment_expression "pdVar15 = pdVar15 + 0xb" identifier = (binary_expression "pdVar15 + 0xb" identifier + number_literal)) ;) (expression_statement "puVar16 = puVar33;" (assignment_expression "puVar16 = puVar33" identifier = identifier) ;) }) while (parenthesized_expression "((ushort *)((int)puVar14 + iVar30 * 3) != puVar33)" ( (binary_expression "(ushort *)((int)puVar14 + iVar30 * 3) != puVar33" (cast_expression "(ushort *)((int)puVar14 + iVar30 * 3)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + iVar30 * 3)" ( (binary_expression "(int)puVar14 + iVar30 * 3" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar30 * 3" identifier * number_literal)) ))) != identifier) )) ;) })) }))))) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" * (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar14)" ( identifier ))) ;) (expression_statement "uVar69 = CONCAT44(iVar12,puVar14);" (assignment_expression "uVar69 = CONCAT44(iVar12,puVar14)" identifier = (call_expression "CONCAT44(iVar12,puVar14)" identifier (argument_list "(iVar12,puVar14)" ( identifier , identifier )))) ;) })) })) (expression_statement "uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);" (assignment_expression "uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar69 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar69 >> 0x20)" ( (binary_expression "(ulonglong)uVar69 >> 0x20" (cast_expression "(ulonglong)uVar69" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar23 = (undefined4)uVar69;" (assignment_expression "uVar23 = (undefined4)uVar69" identifier = (cast_expression "(undefined4)uVar69" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }" if (parenthesized_expression "(((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           )" ( (binary_expression "((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))" (parenthesized_expression "((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0))" ( (binary_expression "(*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)" (parenthesized_expression "(*(int *)(param_1 + 0xee) != 0)" ( (binary_expression "*(int *)(param_1 + 0xee) != 0" (pointer_expression "*(int *)(param_1 + 0xee)" * (cast_expression "(int *)(param_1 + 0xee)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xee)" ( (binary_expression "param_1 + 0xee" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(param_1 + 0x16) != 0)" ( (binary_expression "*(int *)(param_1 + 0x16) != 0" (pointer_expression "*(int *)(param_1 + 0x16)" * (cast_expression "(int *)(param_1 + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16)" ( (binary_expression "param_1 + 0x16" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))" ( (binary_expression "(*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136)" (binary_expression "(*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U" (parenthesized_expression "(*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14))" ( (binary_expression "*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)" (pointer_expression "*(int *)(param_1 + 0x16)" * (cast_expression "(int *)(param_1 + 0x16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16)" ( (binary_expression "param_1 + 0x16" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) )) - number_literal) <= (pointer_expression "*(uint *)(puVar8 + 0x136)" * (cast_expression "(uint *)(puVar8 + 0x136)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x136)" ( (binary_expression "puVar8 + 0x136" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }" { (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(puVar8);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(puVar8)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" ( (pointer_expression "*(code *)PTR_CloseBlob_003a9688" * (cast_expression "(code *)PTR_CloseBlob_003a9688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (if_statement "if (local_309c != 0) goto LAB_002548a8;" if (parenthesized_expression "(local_309c != 0)" ( (binary_expression "local_309c != 0" identifier != number_literal) )) (goto_statement "goto LAB_002548a8;" goto statement_identifier ;)) (goto_statement "goto LAB_00253dbc;" goto statement_identifier ;) })) (expression_statement "iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);" (assignment_expression "iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10)" identifier = (call_expression "(*(code *)PTR_AcquireMagickResource_003a981c)(10)" (parenthesized_expression "(*(code *)PTR_AcquireMagickResource_003a981c)" ( (pointer_expression "*(code *)PTR_AcquireMagickResource_003a981c" * (cast_expression "(code *)PTR_AcquireMagickResource_003a981c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10)" ( number_literal )))) ;) (if_statement "if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }" { (labeled_statement "LAB_002550a8:\n          uVar48 = 0x3db;" statement_identifier : (expression_statement "uVar48 = 0x3db;" (assignment_expression "uVar48 = 0x3db" identifier = number_literal) ;)) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_LAB_003a88e0 + 0x1284)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1284)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1284" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)0x1d1;" (assignment_expression "local_30d8._0_4_ = (ushort *)0x1d1" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)0x1d1" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);" (assignment_expression "iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4)" identifier = (call_expression "(*(code *)PTR_AcquireMagickResource_003a981c)(4)" (parenthesized_expression "(*(code *)PTR_AcquireMagickResource_003a981c)" ( (pointer_expression "*(code *)PTR_AcquireMagickResource_003a981c" * (cast_expression "(code *)PTR_AcquireMagickResource_003a981c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(4)" ( number_literal )))) ;) (if_statement "if (iVar10 == 0) goto LAB_002550a8;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002550a8;" goto statement_identifier ;)) (expression_statement "puVar38 = (ushort *)0x1;" (assignment_expression "puVar38 = (ushort *)0x1" identifier = (cast_expression "(ushort *)0x1" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar50 = auStack_3044;" (assignment_expression "puVar50 = auStack_3044" identifier = identifier) ;) (expression_statement "local_30d8._0_4_ = param_2;" (assignment_expression "local_30d8._0_4_ = param_2" (field_expression "local_30d8._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);" (assignment_expression "iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078)" identifier = (call_expression "(*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078)" (parenthesized_expression "(*(code *)PTR_PersistPixelCache_003a8dc0)" ( (pointer_expression "*(code *)PTR_PersistPixelCache_003a8dc0" * (cast_expression "(code *)PTR_PersistPixelCache_003a8dc0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,auStack_3044,1,&local_3078)" ( identifier , identifier , number_literal , (pointer_expression "&local_3078" & identifier) )))) ;) (if_statement "if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }" { (expression_statement "(*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);" (call_expression "(*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2)" (parenthesized_expression "(*(code *)PTR_SetImageExtent_003a94ac)" ( (pointer_expression "*(code *)PTR_SetImageExtent_003a94ac" * (cast_expression "(code *)PTR_SetImageExtent_003a94ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2)" ( identifier , (pointer_expression "*(undefined4 *)(puVar8 + 0xc)" * (cast_expression "(undefined4 *)(puVar8 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xc)" ( (binary_expression "puVar8 + 0xc" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(puVar8 + 0xe)" * (cast_expression "(undefined4 *)(puVar8 + 0xe)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xe)" ( (binary_expression "puVar8 + 0xe" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "uVar48 = 0x3e3;" (assignment_expression "uVar48 = 0x3e3" identifier = number_literal) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" identifier = (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal)) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001bd;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001bd" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001bd" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001bd" & identifier))) ;) (expression_statement "puVar9 = param_2;" (assignment_expression "puVar9 = param_2" identifier = identifier) ;) (goto_statement "goto LAB_002546ac;" goto statement_identifier ;) })) (expression_statement "iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8)" identifier = (call_expression "(*(code *)PTR_EOFBlob_003a9748)(puVar8)" (parenthesized_expression "(*(code *)PTR_EOFBlob_003a9748)" ( (pointer_expression "*(code *)PTR_EOFBlob_003a9748" * (cast_expression "(code *)PTR_EOFBlob_003a9748" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;) (if_statement "if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }" { (expression_statement "puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" ( (pointer_expression "*(code *)PTR___errno_location_003a99b0" * (cast_expression "(code *)PTR___errno_location_003a99b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);" (assignment_expression "puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17)" identifier = (cast_expression "(ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17)" (parenthesized_expression "(*(code *)PTR_GetExceptionMessage_003a93ec)" ( (pointer_expression "*(code *)PTR_GetExceptionMessage_003a93ec" * (cast_expression "(code *)PTR_GetExceptionMessage_003a93ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar17)" ( (pointer_expression "*puVar17" * identifier) ))))) ;) (expression_statement "local_30cc = puVar8 + 0x1a0;" (assignment_expression "local_30cc = puVar8 + 0x1a0" identifier = (binary_expression "puVar8 + 0x1a0" identifier + number_literal)) ;) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0xe78;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0xe78" identifier = (binary_expression "PTR_LAB_003a88e0 + 0xe78" identifier + number_literal)) ;) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" identifier + number_literal) )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" identifier = (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" ( (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" identifier + number_literal) )))) ;) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c)" (field_expression "local_30d8._4_4_" identifier . field_identifier) = (cast_expression "(ushort *)(PTR_s_courses_003a88ec + -0x17c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x17c)" ( (binary_expression "PTR_s_courses_003a88ec + -0x17c" identifier + number_literal) )))) ;) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" identifier . field_identifier) = (cast_expression "(ushort *)&DAT_000001a9" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001a9" & identifier))) ;) (expression_statement "local_30c8 = puVar9;" (assignment_expression "local_30c8 = puVar9" identifier = identifier) ;) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,puVar50,puVar38,1000)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(puVar9);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(puVar9)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" ( (pointer_expression "*(code *)PTR_DestroyString_003a9074" * (cast_expression "(code *)PTR_DestroyString_003a9074" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(puVar8);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(puVar8)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" ( (pointer_expression "*(code *)PTR_CloseBlob_003a9688" * (cast_expression "(code *)PTR_CloseBlob_003a9688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (labeled_statement "LAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);" statement_identifier : (expression_statement "iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8)" identifier = (call_expression "(*(code *)PTR_GetFirstImageInList_003a944c)(puVar8)" (parenthesized_expression "(*(code *)PTR_GetFirstImageInList_003a944c)" ( (pointer_expression "*(code *)PTR_GetFirstImageInList_003a944c" * (cast_expression "(code *)PTR_GetFirstImageInList_003a944c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;)) (expression_statement "param_1 = puVar9;" (assignment_expression "param_1 = puVar9" identifier = identifier) ;) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" identifier = identifier) ;) (expression_statement "uVar69 = CONCAT44(uVar48,uVar23);" (assignment_expression "uVar69 = CONCAT44(uVar48,uVar23)" identifier = (call_expression "CONCAT44(uVar48,uVar23)" identifier (argument_list "(uVar48,uVar23)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_002546dc;" goto statement_identifier ;) })) (expression_statement "uVar48 = 0xffffffff;" (assignment_expression "uVar48 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar69 = CONCAT44(0xffffffff,uVar23);" (assignment_expression "uVar69 = CONCAT44(0xffffffff,uVar23)" identifier = (call_expression "CONCAT44(0xffffffff,uVar23)" identifier (argument_list "(0xffffffff,uVar23)" ( number_literal , identifier )))) ;) (while_statement "while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }" { (expression_statement "unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" ( (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" * (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (expression_statement "unaff_s4 = (ushort *)((int)unaff_s8 * 2);" (assignment_expression "unaff_s4 = (ushort *)((int)unaff_s8 * 2)" identifier = (cast_expression "(ushort *)((int)unaff_s8 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s8 * 2)" ( (binary_expression "(int)unaff_s8 * 2" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;" if (parenthesized_expression "((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0)" ( (binary_expression "(*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0" (parenthesized_expression "(*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80)" ( (binary_expression "*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80" (pointer_expression "*(ushort *)(*(int *)puVar9 + (int)unaff_s4)" * (cast_expression "(ushort *)(*(int *)puVar9 + (int)unaff_s4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar9 + (int)unaff_s4)" ( (binary_expression "*(int *)puVar9 + (int)unaff_s4" (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) & number_literal) )) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar1 = unaff_s8 == (ushort *)0xffffffff;" (assignment_expression "bVar1 = unaff_s8 == (ushort *)0xffffffff" identifier = (binary_expression "unaff_s8 == (ushort *)0xffffffff" identifier == (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" identifier = identifier) ;) (if_statement "if (bVar1) goto LAB_0025489c;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_0025489c;" goto statement_identifier ;)) })) (if_statement "if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }" if (parenthesized_expression "(unaff_s8 == (ushort *)0xffffffff)" ( (binary_expression "unaff_s8 == (ushort *)0xffffffff" identifier == (cast_expression "(ushort *)0xffffffff" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }" { (labeled_statement "LAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);" statement_identifier : (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(puVar8);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(puVar8)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" ( (pointer_expression "*(code *)PTR_CloseBlob_003a9688" * (cast_expression "(code *)PTR_CloseBlob_003a9688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;)) (expression_statement "puVar11 = unaff_s8;" (assignment_expression "puVar11 = unaff_s8" identifier = identifier) ;) (goto_statement "goto LAB_002548a8;" goto statement_identifier ;) })) (expression_statement "puVar50 = puVar8;" (assignment_expression "puVar50 = puVar8" identifier = identifier) ;) (expression_statement "puVar38 = param_2;" (assignment_expression "puVar38 = param_2" identifier = identifier) ;) (expression_statement "(*(code *)PTR_AcquireNextImage_003a8f90)(param_1);" (call_expression "(*(code *)PTR_AcquireNextImage_003a8f90)(param_1)" (parenthesized_expression "(*(code *)PTR_AcquireNextImage_003a8f90)" ( (pointer_expression "*(code *)PTR_AcquireNextImage_003a8f90" * (cast_expression "(code *)PTR_AcquireNextImage_003a8f90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8)" identifier = (call_expression "(*(code *)PTR_GetNextImageInList_003a9470)(puVar8)" (parenthesized_expression "(*(code *)PTR_GetNextImageInList_003a9470)" ( (pointer_expression "*(code *)PTR_GetNextImageInList_003a9470" * (cast_expression "(code *)PTR_GetNextImageInList_003a9470" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;) (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);" (assignment_expression "puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8)" identifier = (cast_expression "(ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8)" (parenthesized_expression "(*(code *)PTR_SyncNextImageInList_003a9408)" ( (pointer_expression "*(code *)PTR_SyncNextImageInList_003a9408" * (cast_expression "(code *)PTR_SyncNextImageInList_003a9408" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))))) ;) (expression_statement "uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);" (assignment_expression "uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8)" identifier = (call_expression "(*(code *)PTR_TellBlob_003a931c)(puVar8)" (parenthesized_expression "(*(code *)PTR_TellBlob_003a931c)" ( (pointer_expression "*(code *)PTR_TellBlob_003a931c" * (cast_expression "(code *)PTR_TellBlob_003a931c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;) (expression_statement "puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);" (assignment_expression "puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20)" identifier = (cast_expression "(ushort *)((ulonglong)uVar69 >> 0x20)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar69 >> 0x20)" ( (binary_expression "(ulonglong)uVar69 >> 0x20" (cast_expression "(ulonglong)uVar69" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);" (assignment_expression "local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8)" identifier = (call_expression "(*(code *)PTR_GetBlobSize_003a94b8)(puVar8)" (parenthesized_expression "(*(code *)PTR_GetBlobSize_003a94b8)" ( (pointer_expression "*(code *)PTR_GetBlobSize_003a94b8" * (cast_expression "(code *)PTR_GetBlobSize_003a94b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;) (expression_statement "puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);" (assignment_expression "puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168)" identifier = (cast_expression "(ushort *)(PTR_s_courses_003a88ec + -0x168)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x168)" ( (binary_expression "PTR_s_courses_003a88ec + -0x168" identifier + number_literal) )))) ;) (expression_statement "local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);" (assignment_expression "local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69)" identifier = (call_expression "(*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69)" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003a8cb4)" ( (pointer_expression "*(code *)PTR_SetImageProgress_003a8cb4" * (cast_expression "(code *)PTR_SetImageProgress_003a8cb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,puVar50,puVar38,(int)uVar69)" ( identifier , identifier , identifier , (cast_expression "(int)uVar69" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) while (parenthesized_expression "(local_309c != 0)" ( (binary_expression "local_309c != 0" identifier != number_literal) )) ;) (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(puVar8);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(puVar8)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" ( (pointer_expression "*(code *)PTR_CloseBlob_003a9688" * (cast_expression "(code *)PTR_CloseBlob_003a9688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "puVar11 = unaff_s8;" (assignment_expression "puVar11 = unaff_s8" identifier = identifier) ;) (labeled_statement "LAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);" statement_identifier : (expression_statement "iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8)" identifier = (call_expression "(*(code *)PTR_DestroyImageList_003a9510)(puVar8)" (parenthesized_expression "(*(code *)PTR_DestroyImageList_003a9510)" ( (pointer_expression "*(code *)PTR_DestroyImageList_003a9510" * (cast_expression "(code *)PTR_DestroyImageList_003a9510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier )))) ;)) (expression_statement "param_1 = puVar9;" (assignment_expression "param_1 = puVar9" identifier = identifier) ;) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_002546dc:\n  if (local_44 == *(int *)puVar54) {\n    return iVar10;\n  }" statement_identifier : (if_statement "if (local_44 == *(int *)puVar54) {\n    return iVar10;\n  }" if (parenthesized_expression "(local_44 == *(int *)puVar54)" ( (binary_expression "local_44 == *(int *)puVar54" identifier == (pointer_expression "*(int *)puVar54" * (cast_expression "(int *)puVar54" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar10;\n  }" { (return_statement "return iVar10;" return identifier ;) }))) (expression_statement "pcVar55 = FUN_002555c4;" (assignment_expression "pcVar55 = FUN_002555c4" identifier = identifier) ;) (expression_statement "iVar10 = local_44;" (assignment_expression "iVar10 = local_44" identifier = identifier) ;) (expression_statement "puVar54 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar54 = PTR___stack_chk_fail_003a9064" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar18 = *(int **)(puVar54 + 0x153c6c);" (assignment_expression "piVar18 = *(int **)(puVar54 + 0x153c6c)" identifier = (pointer_expression "*(int **)(puVar54 + 0x153c6c)" * (cast_expression "(int **)(puVar54 + 0x153c6c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153c6c)" ( (binary_expression "puVar54 + 0x153c6c" identifier + number_literal) ))))) ;) (expression_statement "iStack_3144 = *piVar18;" (assignment_expression "iStack_3144 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) (expression_statement "puStack_3140 = puVar8;" (assignment_expression "puStack_3140 = puVar8" identifier = identifier) ;) (expression_statement "puStack_313c = param_1;" (assignment_expression "puStack_313c = param_1" identifier = identifier) ;) (expression_statement "puStack_3130 = unaff_s4;" (assignment_expression "puStack_3130 = unaff_s4" identifier = identifier) ;) (expression_statement "puStack_312c = unaff_s5;" (assignment_expression "puStack_312c = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_3128 = unaff_s6;" (assignment_expression "puStack_3128 = unaff_s6" identifier = identifier) ;) (expression_statement "puStack_3124 = unaff_s7;" (assignment_expression "puStack_3124 = unaff_s7" identifier = identifier) ;) (expression_statement "puStack_3120 = unaff_s8;" (assignment_expression "puStack_3120 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_311c = pcVar55;" (assignment_expression "pcStack_311c = pcVar55" identifier = identifier) ;) (expression_statement "dStack_3118 = in_f20_21;" (assignment_expression "dStack_3118 = in_f20_21" identifier = identifier) ;) (expression_statement "dStack_3110 = in_f22_23;" (assignment_expression "dStack_3110 = in_f22_23" identifier = identifier) ;) (expression_statement "dStack_3108 = in_f24_25;" (assignment_expression "dStack_3108 = in_f24_25" identifier = identifier) ;) (expression_statement "uStack_3138 = uVar69;" (assignment_expression "uStack_3138 = uVar69" identifier = identifier) ;) (if_statement "if (iVar10 == 0) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);\n    return iVar10;\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);\n    return iVar10;\n  }" { (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274)" identifier = (call_expression "(**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" ( (pointer_expression "**(code **)(puVar54 + 0x154044)" * (pointer_expression "*(code **)(puVar54 + 0x154044)" * (cast_expression "(code **)(puVar54 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154044)" ( (binary_expression "puVar54 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274)" ( (binary_expression "*(int *)(puVar54 + 0x15331c) + 0xd78" (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7274" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (expression_statement "puVar8 = *(ushort **)(puVar54 + 0x153388);" (assignment_expression "puVar8 = *(ushort **)(puVar54 + 0x153388)" identifier = (pointer_expression "*(ushort **)(puVar54 + 0x153388)" * (cast_expression "(ushort **)(puVar54 + 0x153388)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar10 + 0x3214) != -0x54535255) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);\n    return iVar10;\n  }" if (parenthesized_expression "(*(int *)(iVar10 + 0x3214) != -0x54535255)" ( (binary_expression "*(int *)(iVar10 + 0x3214) != -0x54535255" (pointer_expression "*(int *)(iVar10 + 0x3214)" * (cast_expression "(int *)(iVar10 + 0x3214)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x3214)" ( (binary_expression "iVar10 + 0x3214" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);\n    return iVar10;\n  }" { (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a)" identifier = (call_expression "(**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" ( (pointer_expression "**(code **)(puVar54 + 0x154044)" * (pointer_expression "*(code **)(puVar54 + 0x154044)" * (cast_expression "(code **)(puVar54 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154044)" ( (binary_expression "puVar54 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a)" ( (binary_expression "*(int *)(puVar54 + 0x15331c) + 0xda0" (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "puVar8 + -0x393a" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (puVar50 != (ushort *)0x0) {\n    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }\n    if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }\n    if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    puVar8 = puVar38;\n    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);\n    if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }\n    if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }\n    (**(code **)(puVar54 + 0x153aa0))();\n  }" if (parenthesized_expression "(puVar50 != (ushort *)0x0)" ( (binary_expression "puVar50 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }\n    if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }\n    if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    puVar8 = puVar38;\n    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);\n    if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }\n    if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }\n    (**(code **)(puVar54 + 0x153aa0))();\n  }" { (if_statement "if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }" if (parenthesized_expression "(*(int *)(puVar50 + 0x19b6) != -0x54535255)" ( (binary_expression "*(int *)(puVar50 + 0x19b6) != -0x54535255" (pointer_expression "*(int *)(puVar50 + 0x19b6)" * (cast_expression "(int *)(puVar50 + 0x19b6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x19b6)" ( (binary_expression "puVar50 + 0x19b6" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }" { (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a)" identifier = (call_expression "(**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" ( (pointer_expression "**(code **)(puVar54 + 0x154044)" * (pointer_expression "*(code **)(puVar54 + 0x154044)" * (cast_expression "(code **)(puVar54 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154044)" ( (binary_expression "puVar54 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a)" ( (binary_expression "*(int *)(puVar54 + 0x153324) + -0x3784" (pointer_expression "*(int *)(puVar54 + 0x153324)" * (cast_expression "(int *)(puVar54 + 0x153324)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153324)" ( (binary_expression "puVar54 + 0x153324" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "puVar8 + -0x393a" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }" if (parenthesized_expression "(*(int *)(puVar50 + 0x19a8) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x19a8) != 0" (pointer_expression "*(int *)(puVar50 + 0x19a8)" * (cast_expression "(int *)(puVar50 + 0x19a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x19a8)" ( (binary_expression "puVar50 + 0x19a8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }" { (expression_statement "(**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);" (call_expression "(**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0)" (parenthesized_expression "(**(code **)(puVar54 + 0x153c1c))" ( (pointer_expression "**(code **)(puVar54 + 0x153c1c)" * (pointer_expression "*(code **)(puVar54 + 0x153c1c)" * (cast_expression "(code **)(puVar54 + 0x153c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153c1c)" ( (binary_expression "puVar54 + 0x153c1c" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0)" ( number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7284" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar54 + 0x153320) + -0x62ac" (pointer_expression "*(int *)(puVar54 + 0x153320)" * (cast_expression "(int *)(puVar54 + 0x153320)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153320)" ( (binary_expression "puVar54 + 0x153320" identifier + number_literal) )))) + number_literal) , (binary_expression "puVar50 + 0x1a0" identifier + number_literal) ))) ;) })) (if_statement "if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }" if (parenthesized_expression "(puVar38 == (ushort *)0x0)" ( (binary_expression "puVar38 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }" { (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" identifier = (call_expression "(**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" ( (pointer_expression "**(code **)(puVar54 + 0x154044)" * (pointer_expression "*(code **)(puVar54 + 0x154044)" * (cast_expression "(code **)(puVar54 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154044)" ( (binary_expression "puVar54 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" ( (binary_expression "*(int *)(puVar54 + 0x15331c) + 0x1cac" (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7274" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }" if (parenthesized_expression "(*(int *)(puVar38 + 0xe) != -0x54535255)" ( (binary_expression "*(int *)(puVar38 + 0xe) != -0x54535255" (pointer_expression "*(int *)(puVar38 + 0xe)" * (cast_expression "(int *)(puVar38 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0xe)" ( (binary_expression "puVar38 + 0xe" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }" { (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" identifier = (call_expression "(**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" ( (pointer_expression "**(code **)(puVar54 + 0x154044)" * (pointer_expression "*(code **)(puVar54 + 0x154044)" * (cast_expression "(code **)(puVar54 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154044)" ( (binary_expression "puVar54 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" ( (binary_expression "*(int *)(puVar54 + 0x15331c) + 0x294c" (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7274" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (expression_statement "puVar8 = puVar38;" (assignment_expression "puVar8 = puVar38" identifier = identifier) ;) (expression_statement "iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);" (assignment_expression "iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38)" identifier = (call_expression "(**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38)" (parenthesized_expression "(**(code **)(puVar54 + 0x153c88))" ( (pointer_expression "**(code **)(puVar54 + 0x153c88)" * (pointer_expression "*(code **)(puVar54 + 0x153c88)" * (cast_expression "(code **)(puVar54 + 0x153c88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153c88)" ( (binary_expression "puVar54 + 0x153c88" identifier + number_literal) ))))) )) (argument_list "(iVar10,puVar50,4,puVar38)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }" if (parenthesized_expression "(iVar30 == 0)" ( (binary_expression "iVar30 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0025569c:\n      iVar46 = 0;\n    }" { (labeled_statement "LAB_0025569c:\n      iVar46 = 0;" statement_identifier : (expression_statement "iVar46 = 0;" (assignment_expression "iVar46 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }" else (compound_statement "{\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }" { (expression_statement "iVar47 = *(int *)(puVar54 + 0x15331c);" (assignment_expression "iVar47 = *(int *)(puVar54 + 0x15331c)" identifier = (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) ))))) ;) (expression_statement "iVar49 = *(int *)(puVar54 + 0x15331c);" (assignment_expression "iVar49 = *(int *)(puVar54 + 0x15331c)" identifier = (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) ))))) ;) (expression_statement "iVar51 = *(int *)(puVar54 + 0x15331c);" (assignment_expression "iVar51 = *(int *)(puVar54 + 0x15331c)" identifier = (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);" (call_expression "(**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa)" (parenthesized_expression "(**(code **)(puVar54 + 0x154278))" ( (pointer_expression "**(code **)(puVar54 + 0x154278)" * (pointer_expression "*(code **)(puVar54 + 0x154278)" * (cast_expression "(code **)(puVar54 + 0x154278)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154278)" ( (binary_expression "puVar54 + 0x154278" identifier + number_literal) ))))) )) (argument_list "(auStack_4144,puVar50 + 0x1a0,0xffa)" ( identifier , (binary_expression "puVar50 + 0x1a0" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar30 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar30 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar12 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar19 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);" (call_expression "(**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144)" (parenthesized_expression "(**(code **)(puVar54 + 0x1539e4))" ( (pointer_expression "**(code **)(puVar54 + 0x1539e4)" * (pointer_expression "*(code **)(puVar54 + 0x1539e4)" * (cast_expression "(code **)(puVar54 + 0x1539e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1539e4)" ( (binary_expression "puVar54 + 0x1539e4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144)" ( (binary_expression "*(int *)(puVar54 + 0x153328) + -0x50b8" (pointer_expression "*(int *)(puVar54 + 0x153328)" * (cast_expression "(int *)(puVar54 + 0x153328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153328)" ( (binary_expression "puVar54 + 0x153328" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uStack_514c = 0;" (assignment_expression "uStack_514c = 0" identifier = number_literal) ;) (expression_statement "uStack_5150 = 0;" (assignment_expression "uStack_5150 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar54 + 0x153cb4))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x153cb4))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153cb4))" ( (pointer_expression "**(code **)(puVar54 + 0x153cb4)" * (pointer_expression "*(code **)(puVar54 + 0x153cb4)" * (cast_expression "(code **)(puVar54 + 0x153cb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153cb4)" ( (binary_expression "puVar54 + 0x153cb4" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))) ;) (expression_statement "dVar68 = *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar68 = *(double *)(iVar47 + 0x1418)" identifier = (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar20 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "dVar67 = *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar67 = *(double *)(iVar49 + 0x1400)" identifier = (pointer_expression "*(double *)(iVar49 + 0x1400)" * (cast_expression "(double *)(iVar49 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1400)" ( (binary_expression "iVar49 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "iVar31 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar31 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "dVar66 = *(double *)(iVar51 + 0x1410);" (assignment_expression "dVar66 = *(double *)(iVar51 + 0x1410)" identifier = (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar21 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (expression_statement "puStack_5188 = (ushort *)0x0;" (assignment_expression "puStack_5188 = (ushort *)0x0" identifier = (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar22 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar22 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (do_statement "do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);" do (compound_statement "{\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      }" { (expression_statement "(**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);" (call_expression "(**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38)" (parenthesized_expression "(**(code **)(puVar54 + 0x154260))" ( (pointer_expression "**(code **)(puVar54 + 0x154260)" * (pointer_expression "*(code **)(puVar54 + 0x154260)" * (cast_expression "(code **)(puVar54 + 0x154260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154260)" ( (binary_expression "puVar54 + 0x154260" identifier + number_literal) ))))) )) (argument_list "(puVar50,*(undefined4 *)puVar50,puVar38)" ( identifier , (pointer_expression "*(undefined4 *)puVar50" * (cast_expression "(undefined4 *)puVar50" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , identifier ))) ;) (expression_statement "iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);" (assignment_expression "iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1)" identifier = (call_expression "(**(code **)(puVar54 + 0x153c24))(puVar50,1)" (parenthesized_expression "(**(code **)(puVar54 + 0x153c24))" ( (pointer_expression "**(code **)(puVar54 + 0x153c24)" * (pointer_expression "*(code **)(puVar54 + 0x153c24)" * (cast_expression "(code **)(puVar54 + 0x153c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153c24)" ( (binary_expression "puVar54 + 0x153c24" identifier + number_literal) ))))) )) (argument_list "(puVar50,1)" ( identifier , number_literal )))) ;) (if_statement "if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }" if (parenthesized_expression "(*(int *)puVar50 == 2)" ( (binary_expression "*(int *)puVar50 == 2" (pointer_expression "*(int *)puVar50" * (cast_expression "(int *)puVar50" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }" { (expression_statement "uVar13 = *(uint *)(puVar50 + 0x10);" (assignment_expression "uVar13 = *(uint *)(puVar50 + 0x10)" identifier = (pointer_expression "*(uint *)(puVar50 + 0x10)" * (cast_expression "(uint *)(puVar50 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x10)" ( (binary_expression "puVar50 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar13 = 1;\n          }" { (expression_statement "uVar13 = 1;" (assignment_expression "uVar13 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }" else (compound_statement "{\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }" { (expression_statement "uVar36 = 0;" (assignment_expression "uVar36 = 0" identifier = number_literal) ;) (if_statement "if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }" if (parenthesized_expression "(uVar13 < 0x41)" ( (binary_expression "uVar13 < 0x41" identifier < number_literal) )) (compound_statement "{\n              uVar36 = uVar13;\n            }" { (expression_statement "uVar36 = uVar13;" (assignment_expression "uVar36 = uVar13" identifier = identifier) ;) })) (expression_statement "uVar13 = 2 << (uVar36 - 1 & 0x1f);" (assignment_expression "uVar13 = 2 << (uVar36 - 1 & 0x1f)" identifier = (binary_expression "2 << (uVar36 - 1 & 0x1f)" number_literal << (parenthesized_expression "(uVar36 - 1 & 0x1f)" ( (binary_expression "uVar36 - 1 & 0x1f" (binary_expression "uVar36 - 1" identifier - number_literal) & number_literal) )))) ;) (if_statement "if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }" if (parenthesized_expression "((uVar36 - 1 & 0x20) != 0)" ( (binary_expression "(uVar36 - 1 & 0x20) != 0" (parenthesized_expression "(uVar36 - 1 & 0x20)" ( (binary_expression "uVar36 - 1 & 0x20" (binary_expression "uVar36 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar13 = 0;\n            }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) })) }))) (if_statement "if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }" if (parenthesized_expression "(uVar13 < *(uint *)(puVar50 + 0x12))" ( (binary_expression "uVar13 < *(uint *)(puVar50 + 0x12)" identifier < (pointer_expression "*(uint *)(puVar50 + 0x12)" * (cast_expression "(uint *)(puVar50 + 0x12)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12)" ( (binary_expression "puVar50 + 0x12" identifier + number_literal) ))))) )) (compound_statement "{\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }" { (expression_statement "(**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);" (call_expression "(**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38)" (parenthesized_expression "(**(code **)(puVar54 + 0x154260))" ( (pointer_expression "**(code **)(puVar54 + 0x154260)" * (pointer_expression "*(code **)(puVar54 + 0x154260)" * (cast_expression "(code **)(puVar54 + 0x154260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154260)" ( (binary_expression "puVar54 + 0x154260" identifier + number_literal) ))))) )) (argument_list "(puVar50,1,puVar38)" ( identifier , number_literal , identifier ))) ;) })) })) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,iVar30 + -0x7434)" ( identifier , (binary_expression "iVar30 + -0x7434" identifier + number_literal) ))) ;) (expression_statement "uVar48 = (**(code **)(puVar54 + 0x154128))(0);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x154128))(0)" identifier = (call_expression "(**(code **)(puVar54 + 0x154128))(0)" (parenthesized_expression "(**(code **)(puVar54 + 0x154128))" ( (pointer_expression "**(code **)(puVar54 + 0x154128)" * (pointer_expression "*(code **)(puVar54 + 0x154128)" * (cast_expression "(code **)(puVar54 + 0x154128)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154128)" ( (binary_expression "puVar54 + 0x154128" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,iVar12 + -0x741c,uVar48)" ( identifier , number_literal , (binary_expression "iVar12 + -0x741c" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(5,*(undefined4 *)puVar50)" ( number_literal , (pointer_expression "*(undefined4 *)puVar50" * (cast_expression "(undefined4 *)puVar50" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (expression_statement "dVar65 = (double)*(int *)(puVar50 + 0x12);" (assignment_expression "dVar65 = (double)*(int *)(puVar50 + 0x12)" identifier = (cast_expression "(double)*(int *)(puVar50 + 0x12)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 0x12)" * (cast_expression "(int *)(puVar50 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12)" ( (binary_expression "puVar50 + 0x12" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x12) < 0)" ( (binary_expression "*(int *)(puVar50 + 0x12) < 0" (pointer_expression "*(int *)(puVar50 + 0x12)" * (cast_expression "(int *)(puVar50 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12)" ( (binary_expression "puVar50 + 0x12" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          dVar65 = dVar65 + dVar68;\n        }" { (expression_statement "dVar65 = dVar65 + dVar68;" (assignment_expression "dVar65 = dVar65 + dVar68" identifier = (binary_expression "dVar65 + dVar68" identifier + identifier)) ;) })) (expression_statement "uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));" (assignment_expression "uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e))" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e))" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x3a,*(undefined4 *)(puVar50 + 0x15e))" ( number_literal , (pointer_expression "*(undefined4 *)(puVar50 + 0x15e)" * (cast_expression "(undefined4 *)(puVar50 + 0x15e)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x15e)" ( (binary_expression "puVar50 + 0x15e" identifier + number_literal) )))) )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)" ( identifier , number_literal , (binary_expression "iVar19 + -0x7990" identifier + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,iVar31 + -0x7404)" ( identifier , number_literal , (binary_expression "iVar31 + -0x7404" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "dVar65 = (double)*(int *)(puVar50 + 0x10);" (assignment_expression "dVar65 = (double)*(int *)(puVar50 + 0x10)" identifier = (cast_expression "(double)*(int *)(puVar50 + 0x10)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 0x10)" * (cast_expression "(int *)(puVar50 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x10)" ( (binary_expression "puVar50 + 0x10" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x10) < 0)" ( (binary_expression "*(int *)(puVar50 + 0x10) < 0" (pointer_expression "*(int *)(puVar50 + 0x10)" * (cast_expression "(int *)(puVar50 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x10)" ( (binary_expression "puVar50 + 0x10" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }" { (expression_statement "dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar65 = dVar65 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar65 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar56 = (double)*(int *)(puVar50 + 0xe);" (assignment_expression "dVar56 = (double)*(int *)(puVar50 + 0xe)" identifier = (cast_expression "(double)*(int *)(puVar50 + 0xe)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 0xe)" * (cast_expression "(int *)(puVar50 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xe)" ( (binary_expression "puVar50 + 0xe" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0xe) < 0)" ( (binary_expression "*(int *)(puVar50 + 0xe) < 0" (pointer_expression "*(int *)(puVar50 + 0xe)" * (cast_expression "(int *)(puVar50 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xe)" ( (binary_expression "puVar50 + 0xe" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }" { (expression_statement "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar56 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar57 = (double)*(int *)(puVar50 + 0xc);" (assignment_expression "dVar57 = (double)*(int *)(puVar50 + 0xc)" identifier = (cast_expression "(double)*(int *)(puVar50 + 0xc)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 0xc)" * (cast_expression "(int *)(puVar50 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xc)" ( (binary_expression "puVar50 + 0xc" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0xc) < 0)" ( (binary_expression "*(int *)(puVar50 + 0xc) < 0" (pointer_expression "*(int *)(puVar50 + 0xc)" * (cast_expression "(int *)(puVar50 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xc)" ( (binary_expression "puVar50 + 0xc" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }" { (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,iVar20 + -0x73d0)" ( identifier , number_literal , (binary_expression "iVar20 + -0x73d0" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x150) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x150) != 0" (pointer_expression "*(int *)(puVar50 + 0x150)" * (cast_expression "(int *)(puVar50 + 0x150)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x150)" ( (binary_expression "puVar50 + 0x150" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x49)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x49)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7934" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2))" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2))" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(9,*(undefined4 *)(puVar50 + 2))" ( number_literal , (pointer_expression "*(undefined4 *)(puVar50 + 2)" * (cast_expression "(undefined4 *)(puVar50 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 2)" ( (binary_expression "puVar50 + 2" identifier + number_literal) )))) )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,iVar21 + -0x7928,uVar48)" ( identifier , number_literal , (binary_expression "iVar21 + -0x7928" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x12a) == 0)" ( (binary_expression "*(int *)(puVar50 + 0x12a) == 0" (pointer_expression "*(int *)(puVar50 + 0x12a)" * (cast_expression "(int *)(puVar50 + 0x12a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12a)" ( (binary_expression "puVar50 + 0x12a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }" { (expression_statement "pcVar55 = *(code **)(puVar54 + 0x15379c);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x15379c)" identifier = (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;" if (parenthesized_expression "(*(int *)(puVar50 + 0x12e) == 0)" ( (binary_expression "*(int *)(puVar50 + 0x12e) == 0" (pointer_expression "*(int *)(puVar50 + 0x12e)" * (cast_expression "(int *)(puVar50 + 0x12e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12e)" ( (binary_expression "puVar50 + 0x12e" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00255a3c;" goto statement_identifier ;)) (labeled_statement "LAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);" statement_identifier : (expression_statement "uVar48 = (*pcVar55)(0x18);" (assignment_expression "uVar48 = (*pcVar55)(0x18)" identifier = (call_expression "(*pcVar55)(0x18)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "(0x18)" ( number_literal )))) ;)) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7904" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }" if (parenthesized_expression "(*(int *)(puVar50 + 4) != 0)" ( (binary_expression "*(int *)(puVar50 + 4) != 0" (pointer_expression "*(int *)(puVar50 + 4)" * (cast_expression "(int *)(puVar50 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 4)" ( (binary_expression "puVar50 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }" { (expression_statement "pcVar55 = *(code **)(puVar54 + 0x15379c);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x15379c)" identifier = (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0025663c;" goto statement_identifier ;) })) }) (else_clause "else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }" else (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }" { (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x38)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x38)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -31000" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }" if (parenthesized_expression "(*(int *)(puVar50 + 0x12e) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x12e) != 0" (pointer_expression "*(int *)(puVar50 + 0x12e)" * (cast_expression "(int *)(puVar50 + 0x12e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12e)" ( (binary_expression "puVar50 + 0x12e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }" { (expression_statement "pcVar55 = *(code **)(puVar54 + 0x15379c);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x15379c)" identifier = (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002565f0;" goto statement_identifier ;) })) (labeled_statement "LAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);" statement_identifier : (expression_statement "pcVar55 = *(code **)(puVar54 + 0x15379c);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x15379c)" identifier = (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) ;)) (if_statement "if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" if (parenthesized_expression "(*(int *)(puVar50 + 4) != 0)" ( (binary_expression "*(int *)(puVar50 + 4) != 0" (pointer_expression "*(int *)(puVar50 + 4)" * (cast_expression "(int *)(puVar50 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 4)" ( (binary_expression "puVar50 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" { (labeled_statement "LAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);" statement_identifier : (expression_statement "uVar48 = (*pcVar55)(0xe);" (assignment_expression "uVar48 = (*pcVar55)(0xe)" identifier = (call_expression "(*pcVar55)(0xe)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "(0xe)" ( number_literal )))) ;)) (expression_statement "dVar57 = (double)*(int *)(puVar50 + 6);" (assignment_expression "dVar57 = (double)*(int *)(puVar50 + 6)" identifier = (cast_expression "(double)*(int *)(puVar50 + 6)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 6)" * (cast_expression "(int *)(puVar50 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 6)" ( (binary_expression "puVar50 + 6" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" if (parenthesized_expression "(*(int *)(puVar50 + 6) < 0)" ( (binary_expression "*(int *)(puVar50 + 6) < 0" (pointer_expression "*(int *)(puVar50 + 6)" * (cast_expression "(int *)(puVar50 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 6)" ( (binary_expression "puVar50 + 6" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" { (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x78f8" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) }))) (if_statement "if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x100) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x100) != 0" (pointer_expression "*(int *)(puVar50 + 0x100)" * (cast_expression "(int *)(puVar50 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x100)" ( (binary_expression "puVar50 + 0x100" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x41)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x41)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x78d8" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (expression_statement "dVar65 = *(double *)(puVar50 + 0x10c);" (assignment_expression "dVar65 = *(double *)(puVar50 + 0x10c)" identifier = (pointer_expression "*(double *)(puVar50 + 0x10c)" * (cast_expression "(double *)(puVar50 + 0x10c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x10c)" ( (binary_expression "puVar50 + 0x10c" identifier + number_literal) ))))) ;) (expression_statement "dVar61 = *(double *)(puVar50 + 0x110);" (assignment_expression "dVar61 = *(double *)(puVar50 + 0x110)" identifier = (pointer_expression "*(double *)(puVar50 + 0x110)" * (cast_expression "(double *)(puVar50 + 0x110)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x110)" ( (binary_expression "puVar50 + 0x110" identifier + number_literal) ))))) ;) (if_statement "if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }" if (parenthesized_expression "((dVar65 != 0.0) || (dVar61 != 0.0))" ( (binary_expression "(dVar65 != 0.0) || (dVar61 != 0.0)" (parenthesized_expression "(dVar65 != 0.0)" ( (binary_expression "dVar65 != 0.0" identifier != number_literal) )) || (parenthesized_expression "(dVar61 != 0.0)" ( (binary_expression "dVar61 != 0.0" identifier != number_literal) ))) )) (compound_statement "{\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }" { (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x78cc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "dVar57 = dVar65;" (assignment_expression "dVar57 = dVar65" identifier = identifier) ;) (expression_statement "dVar56 = dVar61;" (assignment_expression "dVar56 = dVar61" identifier = identifier) ;) })) (expression_statement "iVar32 = *(int *)(puVar50 + 0x114);" (assignment_expression "iVar32 = *(int *)(puVar50 + 0x114)" identifier = (pointer_expression "*(int *)(puVar50 + 0x114)" * (cast_expression "(int *)(puVar50 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x114)" ( (binary_expression "puVar50 + 0x114" identifier + number_literal) ))))) ;) (expression_statement "iVar34 = *(int *)(puVar50 + 0x116);" (assignment_expression "iVar34 = *(int *)(puVar50 + 0x116)" identifier = (pointer_expression "*(int *)(puVar50 + 0x116)" * (cast_expression "(int *)(puVar50 + 0x116)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x116)" ( (binary_expression "puVar50 + 0x116" identifier + number_literal) ))))) ;) (expression_statement "iVar39 = *(int *)(puVar50 + 0x118);" (assignment_expression "iVar39 = *(int *)(puVar50 + 0x118)" identifier = (pointer_expression "*(int *)(puVar50 + 0x118)" * (cast_expression "(int *)(puVar50 + 0x118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x118)" ( (binary_expression "puVar50 + 0x118" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = *(int *)(puVar50 + 0x11a);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x11a)" identifier = (pointer_expression "*(int *)(puVar50 + 0x11a)" * (cast_expression "(int *)(puVar50 + 0x11a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x11a)" ( (binary_expression "puVar50 + 0x11a" identifier + number_literal) ))))) ;) (if_statement "if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "((iVar32 == 0) && (iVar34 == 0))" ( (binary_expression "(iVar32 == 0) && (iVar34 == 0)" (parenthesized_expression "(iVar32 == 0)" ( (binary_expression "iVar32 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar34 == 0)" ( (binary_expression "iVar34 == 0" identifier == number_literal) ))) )) (compound_statement "{\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }" { (if_statement "if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }" if (parenthesized_expression "((iVar39 != 0) || (iVar24 != 0))" ( (binary_expression "(iVar39 != 0) || (iVar24 != 0)" (parenthesized_expression "(iVar39 != 0)" ( (binary_expression "iVar39 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) ))) )) (compound_statement "{\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }" { (expression_statement "uVar48 = SUB84(dVar57,0);" (assignment_expression "uVar48 = SUB84(dVar57,0)" identifier = (call_expression "SUB84(dVar57,0)" identifier (argument_list "(dVar57,0)" ( identifier , number_literal )))) ;) (expression_statement "dVar57 = (double)CONCAT44(iVar24,uVar48);" (assignment_expression "dVar57 = (double)CONCAT44(iVar24,uVar48)" identifier = (cast_expression "(double)CONCAT44(iVar24,uVar48)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar24,uVar48)" identifier (argument_list "(iVar24,uVar48)" ( identifier , identifier ))))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7898" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_00255ed4;" goto statement_identifier ;) })) }) (else_clause "else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" else (compound_statement "{\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "dVar56 = (double)iVar34;" (assignment_expression "dVar56 = (double)iVar34" identifier = (cast_expression "(double)iVar34" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }" if (parenthesized_expression "(iVar34 < 0)" ( (binary_expression "iVar34 < 0" identifier < number_literal) )) (compound_statement "{\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }" { (expression_statement "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar56 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar57 = (double)iVar32;" (assignment_expression "dVar57 = (double)iVar32" identifier = (cast_expression "(double)iVar32" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }" if (parenthesized_expression "(iVar32 < 0)" ( (binary_expression "iVar32 < 0" identifier < number_literal) )) (compound_statement "{\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }" { (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x78b8" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier , (cast_expression "(double)iVar39" ( (type_descriptor "double" primitive_type) ) identifier) , (cast_expression "(double)iVar24" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) (labeled_statement "LAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" statement_identifier : (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;)) }))) (expression_statement "iVar24 = *(int *)(puVar50 + 0x14e);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x14e)" identifier = (pointer_expression "*(int *)(puVar50 + 0x14e)" * (cast_expression "(int *)(puVar50 + 0x14e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14e)" ( (binary_expression "puVar50 + 0x14e" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }" if (parenthesized_expression "((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0))" ( (binary_expression "(*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)" (parenthesized_expression "(*(int *)(puVar50 + 0x14c) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x14c) != 0" (pointer_expression "*(int *)(puVar50 + 0x14c)" * (cast_expression "(int *)(puVar50 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14c)" ( (binary_expression "puVar50 + 0x14c" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)" ( (comma_expression "pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x153eac)" identifier = (pointer_expression "*(code **)(puVar54 + 0x153eac)" * (cast_expression "(code **)(puVar54 + 0x153eac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153eac)" ( (binary_expression "puVar54 + 0x153eac" identifier + number_literal) ))))) , (binary_expression "iVar24 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }" { (expression_statement "dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));" (assignment_expression "dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0))" identifier = (cast_expression "(double)CONCAT44(iVar24,SUB84(dVar57,0))" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar24,SUB84(dVar57,0))" identifier (argument_list "(iVar24,SUB84(dVar57,0))" ( identifier , (call_expression "SUB84(dVar57,0)" identifier (argument_list "(dVar57,0)" ( identifier , number_literal ))) ))))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7888" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(int *)(puVar50 + 0x14c)" * (cast_expression "(int *)(puVar50 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14c)" ( (binary_expression "puVar50 + 0x14c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x153eac);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x153eac)" identifier = (pointer_expression "*(code **)(puVar54 + 0x153eac)" * (cast_expression "(code **)(puVar54 + 0x153eac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153eac)" ( (binary_expression "puVar54 + 0x153eac" identifier + number_literal) ))))) ;) })) (expression_statement "iVar24 = (*pcVar55)(puVar50);" (assignment_expression "iVar24 = (*pcVar55)(puVar50)" identifier = (call_expression "(*pcVar55)(puVar50)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "(puVar50)" ( identifier )))) ;) (expression_statement "iVar32 = *(int *)(puVar50 + 0x136);" (assignment_expression "iVar32 = *(int *)(puVar50 + 0x136)" identifier = (pointer_expression "*(int *)(puVar50 + 0x136)" * (cast_expression "(int *)(puVar50 + 0x136)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x136)" ( (binary_expression "puVar50 + 0x136" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }" { (expression_statement "iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);" (assignment_expression "iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50)" identifier = (call_expression "(**(code **)(puVar54 + 0x1536e8))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1536e8))" ( (pointer_expression "**(code **)(puVar54 + 0x1536e8)" * (pointer_expression "*(code **)(puVar54 + 0x1536e8)" * (cast_expression "(code **)(puVar54 + 0x1536e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1536e8)" ( (binary_expression "puVar54 + 0x1536e8" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier )))) ;) (if_statement "if (iVar24 != 0) goto LAB_00255b3c;" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00255b3c;" goto statement_identifier ;)) (if_statement "if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" if (parenthesized_expression "(iVar32 != 0)" ( (binary_expression "iVar32 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" { (expression_statement "dVar57 = (double)iVar32;" (assignment_expression "dVar57 = (double)iVar32" identifier = (cast_expression "(double)iVar32" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" if (parenthesized_expression "(iVar32 < 0)" ( (binary_expression "iVar32 < 0" identifier < number_literal) )) (compound_statement "{\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" { (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77f4" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (expression_statement "iVar24 = *(int *)(puVar50 + 0x13e);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x13e)" identifier = (pointer_expression "*(int *)(puVar50 + 0x13e)" * (cast_expression "(int *)(puVar50 + 0x13e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x13e)" ( (binary_expression "puVar50 + 0x13e" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" { (expression_statement "dVar57 = (double)iVar24;" (assignment_expression "dVar57 = (double)iVar24" identifier = (cast_expression "(double)iVar24" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" if (parenthesized_expression "(iVar24 < 0)" ( (binary_expression "iVar24 < 0" identifier < number_literal) )) (compound_statement "{\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" { (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77e4" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (expression_statement "iVar24 = *(int *)(puVar50 + 0x138);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x138)" identifier = (pointer_expression "*(int *)(puVar50 + 0x138)" * (cast_expression "(int *)(puVar50 + 0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x138)" ( (binary_expression "puVar50 + 0x138" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" { (expression_statement "dVar57 = (double)iVar24;" (assignment_expression "dVar57 = (double)iVar24" identifier = (cast_expression "(double)iVar24" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" if (parenthesized_expression "(iVar24 < 0)" ( (binary_expression "iVar24 < 0" identifier < number_literal) )) (compound_statement "{\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" { (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77d0" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" if (parenthesized_expression "(*(int *)(puVar50 + 0x13c) != 100)" ( (binary_expression "*(int *)(puVar50 + 0x13c) != 100" (pointer_expression "*(int *)(puVar50 + 0x13c)" * (cast_expression "(int *)(puVar50 + 0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x13c)" ( (binary_expression "puVar50 + 0x13c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" { (expression_statement "dVar57 = (double)*(int *)(puVar50 + 0x13c);" (assignment_expression "dVar57 = (double)*(int *)(puVar50 + 0x13c)" identifier = (cast_expression "(double)*(int *)(puVar50 + 0x13c)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 0x13c)" * (cast_expression "(int *)(puVar50 + 0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x13c)" ( (binary_expression "puVar50 + 0x13c" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x780c" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) }) (else_clause "else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" else (compound_statement "{\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (labeled_statement "LAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);" statement_identifier : (expression_statement "dVar56 = (double)*(int *)(puVar50 + 0x13e);" (assignment_expression "dVar56 = (double)*(int *)(puVar50 + 0x13e)" identifier = (cast_expression "(double)*(int *)(puVar50 + 0x13e)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 0x13e)" * (cast_expression "(int *)(puVar50 + 0x13e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x13e)" ( (binary_expression "puVar50 + 0x13e" identifier + number_literal) )))))) ;)) (if_statement "if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }" if (parenthesized_expression "(*(int *)(puVar50 + 0x13e) < 0)" ( (binary_expression "*(int *)(puVar50 + 0x13e) < 0" (pointer_expression "*(int *)(puVar50 + 0x13e)" * (cast_expression "(int *)(puVar50 + 0x13e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x13e)" ( (binary_expression "puVar50 + 0x13e" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }" { (expression_statement "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar56 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar65 = (double)*(int *)(puVar50 + 0x138);" (assignment_expression "dVar65 = (double)*(int *)(puVar50 + 0x138)" identifier = (cast_expression "(double)*(int *)(puVar50 + 0x138)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(puVar50 + 0x138)" * (cast_expression "(int *)(puVar50 + 0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x138)" ( (binary_expression "puVar50 + 0x138" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }" if (parenthesized_expression "(*(int *)(puVar50 + 0x138) < 0)" ( (binary_expression "*(int *)(puVar50 + 0x138) < 0" (pointer_expression "*(int *)(puVar50 + 0x138)" * (cast_expression "(int *)(puVar50 + 0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x138)" ( (binary_expression "puVar50 + 0x138" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }" { (expression_statement "dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar65 = dVar65 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar65 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (if_statement "if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }" if (parenthesized_expression "(iVar32 == 0)" ( (binary_expression "iVar32 == 0" identifier == number_literal) )) (compound_statement "{\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }" { (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7870" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "dVar57 = dVar56;" (assignment_expression "dVar57 = dVar56" identifier = identifier) ;) (expression_statement "dVar56 = dVar65;" (assignment_expression "dVar56 = dVar65" identifier = identifier) ;) }) (else_clause "else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }" else (compound_statement "{\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }" { (expression_statement "dVar57 = (double)iVar32;" (assignment_expression "dVar57 = (double)iVar32" identifier = (cast_expression "(double)iVar32" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" if (parenthesized_expression "(iVar32 < 0)" ( (binary_expression "iVar32 < 0" identifier < number_literal) )) (compound_statement "{\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" { (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" identifier = (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" identifier + (pointer_expression "*(double *)(iVar47 + 0x1418)" * (cast_expression "(double *)(iVar47 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + 0x1418)" ( (binary_expression "iVar47 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7838" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) }))) (if_statement "if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x130) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x130) != 0" (pointer_expression "*(int *)(puVar50 + 0x130)" * (cast_expression "(int *)(puVar50 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x130)" ( (binary_expression "puVar50 + 0x130" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x21)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x21)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77c0" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x134) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x134) != 0" (pointer_expression "*(int *)(puVar50 + 0x134)" * (cast_expression "(int *)(puVar50 + 0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x134)" ( (binary_expression "puVar50 + 0x134" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x15)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x15)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77b4" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0xfc) != 0)" ( (binary_expression "*(int *)(puVar50 + 0xfc) != 0" (pointer_expression "*(int *)(puVar50 + 0xfc)" * (cast_expression "(int *)(puVar50 + 0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xfc)" ( (binary_expression "puVar50 + 0xfc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x23)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x23)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77a8" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (expression_statement "dVar65 = *(double *)(puVar50 + 200);" (assignment_expression "dVar65 = *(double *)(puVar50 + 200)" identifier = (pointer_expression "*(double *)(puVar50 + 200)" * (cast_expression "(double *)(puVar50 + 200)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 200)" ( (binary_expression "puVar50 + 200" identifier + number_literal) ))))) ;) (if_statement "if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }" if (parenthesized_expression "(dVar65 != 0.0)" ( (binary_expression "dVar65 != 0.0" identifier != number_literal) )) (compound_statement "{\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }" { (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7790" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "dVar57 = dVar65;" (assignment_expression "dVar57 = dVar65" identifier = identifier) ;) })) (if_statement "if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(*(double *)(puVar50 + 0xf0) != 0.0)" ( (binary_expression "*(double *)(puVar50 + 0xf0) != 0.0" (pointer_expression "*(double *)(puVar50 + 0xf0)" * (cast_expression "(double *)(puVar50 + 0xf0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xf0)" ( (binary_expression "puVar50 + 0xf0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7784" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "dVar56 = *(double *)(puVar50 + 0xf4);" (assignment_expression "dVar56 = *(double *)(puVar50 + 0xf4)" identifier = (pointer_expression "*(double *)(puVar50 + 0xf4)" * (cast_expression "(double *)(puVar50 + 0xf4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xf4)" ( (binary_expression "puVar50 + 0xf4" identifier + number_literal) ))))) ;) (expression_statement "dVar57 = *(double *)(puVar50 + 0xf0);" (assignment_expression "dVar57 = *(double *)(puVar50 + 0xf0)" identifier = (pointer_expression "*(double *)(puVar50 + 0xf0)" * (cast_expression "(double *)(puVar50 + 0xf0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xf0)" ( (binary_expression "puVar50 + 0xf0" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7748" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 8) != 0)" ( (binary_expression "*(int *)(puVar50 + 8) != 0" (pointer_expression "*(int *)(puVar50 + 8)" * (cast_expression "(int *)(puVar50 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 8)" ( (binary_expression "puVar50 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36)" identifier = (call_expression "(**(code **)(puVar54 + 0x15379c))(0x36)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" ( (pointer_expression "**(code **)(puVar54 + 0x15379c)" * (pointer_expression "*(code **)(puVar54 + 0x15379c)" * (cast_expression "(code **)(puVar54 + 0x15379c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15379c)" ( (binary_expression "puVar54 + 0x15379c" identifier + number_literal) ))))) )) (argument_list "(0x36)" ( number_literal )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    )" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    )" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7734" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (if_statement "if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0xfe) == 0)" ( (binary_expression "*(int *)(puVar50 + 0xfe) == 0" (pointer_expression "*(int *)(puVar50 + 0xfe)" * (cast_expression "(int *)(puVar50 + 0xfe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xfe)" ( (binary_expression "puVar50 + 0xfe" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }" { (labeled_statement "LAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);" statement_identifier : (expression_statement "puVar8 = *(ushort **)(puVar50 + 0x102);" (assignment_expression "puVar8 = *(ushort **)(puVar50 + 0x102)" identifier = (pointer_expression "*(ushort **)(puVar50 + 0x102)" * (cast_expression "(ushort **)(puVar50 + 0x102)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar50 + 0x102)" ( (binary_expression "puVar50 + 0x102" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }" else (compound_statement "{\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }" { (expression_statement "(**(code **)(puVar54 + 0x1538c8))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x1538c8))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1538c8))" ( (pointer_expression "**(code **)(puVar54 + 0x1538c8)" * (pointer_expression "*(code **)(puVar54 + 0x1538c8)" * (cast_expression "(code **)(puVar54 + 0x1538c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1538c8)" ( (binary_expression "puVar54 + 0x1538c8" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))) ;) (expression_statement "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);" (assignment_expression "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50)" identifier = (call_expression "(**(code **)(puVar54 + 0x153948))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153948))" ( (pointer_expression "**(code **)(puVar54 + 0x153948)" * (pointer_expression "*(code **)(puVar54 + 0x153948)" * (cast_expression "(code **)(puVar54 + 0x153948)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153948)" ( (binary_expression "puVar54 + 0x153948" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier )))) ;) (if_statement "if (iVar24 == 0) goto LAB_00255c28;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00255c28;" goto statement_identifier ;)) (expression_statement "iVar32 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar32 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (do_statement "do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);" do (compound_statement "{\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          }" { (expression_statement "iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);" (assignment_expression "iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24)" identifier = (call_expression "(**(code **)(puVar54 + 0x153e14))(puVar50,iVar24)" (parenthesized_expression "(**(code **)(puVar54 + 0x153e14))" ( (pointer_expression "**(code **)(puVar54 + 0x153e14)" * (pointer_expression "*(code **)(puVar54 + 0x153e14)" * (cast_expression "(code **)(puVar54 + 0x153e14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153e14)" ( (binary_expression "puVar54 + 0x153e14" identifier + number_literal) ))))) )) (argument_list "(puVar50,iVar24)" ( identifier , identifier )))) ;) (if_statement "if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }" if (parenthesized_expression "(iVar34 != 0)" ( (binary_expression "iVar34 != 0" identifier != number_literal) )) (compound_statement "{\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }" { (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,iVar32 + -0x7724,iVar24)" ( identifier , number_literal , (binary_expression "iVar32 + -0x7724" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (expression_statement "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);" (assignment_expression "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50)" identifier = (call_expression "(**(code **)(puVar54 + 0x153948))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153948))" ( (pointer_expression "**(code **)(puVar54 + 0x153948)" * (pointer_expression "*(code **)(puVar54 + 0x153948)" * (cast_expression "(code **)(puVar54 + 0x153948)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153948)" ( (binary_expression "puVar54 + 0x153948" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) ;) (expression_statement "puVar8 = *(ushort **)(puVar50 + 0x102);" (assignment_expression "puVar8 = *(ushort **)(puVar50 + 0x102)" identifier = (pointer_expression "*(ushort **)(puVar50 + 0x102)" * (cast_expression "(ushort **)(puVar50 + 0x102)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar50 + 0x102)" ( (binary_expression "puVar50 + 0x102" identifier + number_literal) ))))) ;) }))) (if_statement "if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" if (parenthesized_expression "(puVar8 != (ushort *)0x0)" ( (binary_expression "puVar8 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" { (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718)" ( identifier , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7718" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1536d0))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x1536d0))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1536d0))" ( (pointer_expression "**(code **)(puVar54 + 0x1536d0)" * (pointer_expression "*(code **)(puVar54 + 0x1536d0)" * (cast_expression "(code **)(puVar54 + 0x1536d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1536d0)" ( (binary_expression "puVar54 + 0x1536d0" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))) ;) (expression_statement "puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);" (assignment_expression "puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50)" identifier = (cast_expression "(ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar54 + 0x1542fc))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1542fc))" ( (pointer_expression "**(code **)(puVar54 + 0x1542fc)" * (pointer_expression "*(code **)(puVar54 + 0x1542fc)" * (cast_expression "(code **)(puVar54 + 0x1542fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1542fc)" ( (binary_expression "puVar54 + 0x1542fc" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))))) ;) (if_statement "if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }" if (parenthesized_expression "(puVar9 != (ushort *)0x0)" ( (binary_expression "puVar9 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }" { (expression_statement "iVar24 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar24 = *(int *)(puVar54 + 0x153388)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00255c90:\n          puVar8 = puVar9;" statement_identifier : (expression_statement "puVar8 = puVar9;" (assignment_expression "puVar8 = puVar9" identifier = identifier) ;)) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" ( (pointer_expression "**(code **)(puVar54 + 0x1537b8)" * (pointer_expression "*(code **)(puVar54 + 0x1537b8)" * (cast_expression "(code **)(puVar54 + 0x1537b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537b8)" ( (binary_expression "puVar54 + 0x1537b8" identifier + number_literal) ))))) )) (argument_list "(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9)" ( identifier , number_literal , (binary_expression "iVar24 + -0x7c80" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,auStack_5144)" ( identifier , identifier ))) ;) (expression_statement "pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);" (assignment_expression "pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38)" identifier = (cast_expression "(byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38)" (parenthesized_expression "(**(code **)(puVar54 + 0x153e38))" ( (pointer_expression "**(code **)(puVar54 + 0x153e38)" * (pointer_expression "*(code **)(puVar54 + 0x153e38)" * (cast_expression "(code **)(puVar54 + 0x153e38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153e38)" ( (binary_expression "puVar54 + 0x153e38" identifier + number_literal) ))))) )) (argument_list "(puVar50,puVar9,puVar38)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }" if (parenthesized_expression "(pbVar25 != (byte *)0x0)" ( (binary_expression "pbVar25 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }" { (expression_statement "iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);" (assignment_expression "iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25)" identifier = (call_expression "(**(code **)(puVar54 + 0x153d74))(pbVar25)" (parenthesized_expression "(**(code **)(puVar54 + 0x153d74))" ( (pointer_expression "**(code **)(puVar54 + 0x153d74)" * (pointer_expression "*(code **)(puVar54 + 0x153d74)" * (cast_expression "(code **)(puVar54 + 0x153d74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153d74)" ( (binary_expression "puVar54 + 0x153d74" identifier + number_literal) ))))) )) (argument_list "(pbVar25)" ( identifier )))) ;) (if_statement "if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }" if (parenthesized_expression "(iVar32 != 0)" ( (binary_expression "iVar32 != 0" identifier != number_literal) )) (compound_statement "{\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }" { (expression_statement "piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();" (assignment_expression "piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))()" identifier = (cast_expression "(int *)(**(code **)(puVar54 + 0x153e70))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar54 + 0x153e70))()" (parenthesized_expression "(**(code **)(puVar54 + 0x153e70))" ( (pointer_expression "**(code **)(puVar54 + 0x153e70)" * (pointer_expression "*(code **)(puVar54 + 0x153e70)" * (cast_expression "(code **)(puVar54 + 0x153e70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153e70)" ( (binary_expression "puVar54 + 0x153e70" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar34 = 0;" (assignment_expression "iVar34 = 0" identifier = number_literal) ;) (expression_statement "pbVar53 = pbVar25;" (assignment_expression "pbVar53 = pbVar25" identifier = identifier) ;) (do_statement "do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);" do (compound_statement "{\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              }" { (expression_statement "iVar39 = iVar34 + 1;" (assignment_expression "iVar39 = iVar34 + 1" identifier = (binary_expression "iVar34 + 1" identifier + number_literal)) ;) (if_statement "if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }" if (parenthesized_expression "((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0)" ( (binary_expression "(*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar26 + (uint)*pbVar53 * 2)" * (cast_expression "(ushort *)(*piVar26 + (uint)*pbVar53 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar26 + (uint)*pbVar53 * 2)" ( (binary_expression "*piVar26 + (uint)*pbVar53 * 2" (pointer_expression "*piVar26" * identifier) + (binary_expression "(uint)*pbVar53 * 2" (binary_expression "(uint)*pbVar53" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }" { (if_statement "if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }" if (parenthesized_expression "(iVar34 != iVar32)" ( (binary_expression "iVar34 != iVar32" identifier != identifier) )) (compound_statement "{\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }" { (expression_statement "pbVar53 = pbVar25 + iVar32;" (assignment_expression "pbVar53 = pbVar25 + iVar32" identifier = (binary_expression "pbVar25 + iVar32" identifier + identifier)) ;) (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7b)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,0x7b)" ( identifier , number_literal ))) ;) (expression_statement "iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);" (assignment_expression "iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d)" identifier = (call_expression "(**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d)" (parenthesized_expression "(**(code **)(puVar54 + 0x1541c4))" ( (pointer_expression "**(code **)(puVar54 + 0x1541c4)" * (pointer_expression "*(code **)(puVar54 + 0x1541c4)" * (cast_expression "(code **)(puVar54 + 0x1541c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1541c4)" ( (binary_expression "puVar54 + 0x1541c4" identifier + number_literal) ))))) )) (argument_list "(pbVar25,0x7d)" ( identifier , number_literal )))) ;) (if_statement "if (iVar34 != 0) goto LAB_00255f3c;" if (parenthesized_expression "(iVar34 != 0)" ( (binary_expression "iVar34 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00255f3c;" goto statement_identifier ;)) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1543d0);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1543d0)" identifier = (pointer_expression "*(code **)(puVar54 + 0x1543d0)" * (cast_expression "(code **)(puVar54 + 0x1543d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1543d0)" ( (binary_expression "puVar54 + 0x1543d0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00255fc0;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "pbVar53 = pbVar53 + 1;" (assignment_expression "pbVar53 = pbVar53 + 1" identifier = (binary_expression "pbVar53 + 1" identifier + number_literal)) ;) (expression_statement "iVar34 = iVar39;" (assignment_expression "iVar34 = iVar39" identifier = identifier) ;) }) while (parenthesized_expression "(iVar39 != iVar32)" ( (binary_expression "iVar39 != iVar32" identifier != identifier) )) ;) (expression_statement "(**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);" (call_expression "(**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25)" (parenthesized_expression "(**(code **)(puVar54 + 0x1543d0))" ( (pointer_expression "**(code **)(puVar54 + 0x1543d0)" * (pointer_expression "*(code **)(puVar54 + 0x1543d0)" * (cast_expression "(code **)(puVar54 + 0x1543d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1543d0)" ( (binary_expression "puVar54 + 0x1543d0" identifier + number_literal) ))))) )) (argument_list "(puVar50,iVar32,pbVar25)" ( identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_00255d60;" goto statement_identifier ;) })) (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7b)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,0x7b)" ( identifier , number_literal ))) ;) (expression_statement "iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);" (assignment_expression "iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d)" identifier = (call_expression "(**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d)" (parenthesized_expression "(**(code **)(puVar54 + 0x1541c4))" ( (pointer_expression "**(code **)(puVar54 + 0x1541c4)" * (pointer_expression "*(code **)(puVar54 + 0x1541c4)" * (cast_expression "(code **)(puVar54 + 0x1541c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1541c4)" ( (binary_expression "puVar54 + 0x1541c4" identifier + number_literal) ))))) )) (argument_list "(pbVar25,0x7d)" ( identifier , number_literal )))) ;) (if_statement "if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }" if (parenthesized_expression "(iVar34 == 0)" ( (binary_expression "iVar34 == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }" { (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1543d0);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1543d0)" identifier = (pointer_expression "*(code **)(puVar54 + 0x1543d0)" * (cast_expression "(code **)(puVar54 + 0x1543d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1543d0)" ( (binary_expression "puVar54 + 0x1543d0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);" statement_identifier : (expression_statement "(*pcVar55)(puVar50,iVar32,pbVar25);" (call_expression "(*pcVar55)(puVar50,iVar32,pbVar25)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "(puVar50,iVar32,pbVar25)" ( identifier , identifier , identifier ))) ;)) (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7d)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,0x7d)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_00255d60;" goto statement_identifier ;) })) (goto_statement "goto LAB_00255f78;" goto statement_identifier ;) })) (goto_statement "goto LAB_00255d60;" goto statement_identifier ;) })) (labeled_statement "LAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);" statement_identifier : (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50,iVar22 + -0x770c)" ( identifier , (binary_expression "iVar22 + -0x770c" identifier + number_literal) ))) ;)) (if_statement "if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0x102) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x102) != 0" (pointer_expression "*(int *)(puVar50 + 0x102)" * (cast_expression "(int *)(puVar50 + 0x102)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x102)" ( (binary_expression "puVar50 + 0x102" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }" { (if_statement "if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }" if (parenthesized_expression "(*(int *)(puVar50 + 0x104) != 0)" ( (binary_expression "*(int *)(puVar50 + 0x104) != 0" (pointer_expression "*(int *)(puVar50 + 0x104)" * (cast_expression "(int *)(puVar50 + 0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x104)" ( (binary_expression "puVar50 + 0x104" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }" { (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" ( (pointer_expression "**(code **)(puVar54 + 0x153fe4)" * (pointer_expression "*(code **)(puVar54 + 0x153fe4)" * (cast_expression "(code **)(puVar54 + 0x153fe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153fe4)" ( (binary_expression "puVar54 + 0x153fe4" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))) ;) })) (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,0)" ( identifier , number_literal ))) ;) })) (if_statement "if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }" if (parenthesized_expression "(*(int *)(puVar50 + 0xfe) == 0)" ( (binary_expression "*(int *)(puVar50 + 0xfe) == 0" (pointer_expression "*(int *)(puVar50 + 0xfe)" * (cast_expression "(int *)(puVar50 + 0xfe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0xfe)" ( (binary_expression "puVar50 + 0xfe" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }" { (if_statement "if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }" if (parenthesized_expression "(*(int *)puVar50 == 2)" ( (binary_expression "*(int *)puVar50 == 2" (pointer_expression "*(int *)puVar50" * (cast_expression "(int *)puVar50" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }" { (labeled_statement "LAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;" statement_identifier : (expression_statement "uVar13 = (uint)(iVar46 * 3) >> 3;" (assignment_expression "uVar13 = (uint)(iVar46 * 3) >> 3" identifier = (binary_expression "(uint)(iVar46 * 3) >> 3" (call_expression "(uint)(iVar46 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar46 * 3)" ( (binary_expression "iVar46 * 3" identifier * number_literal) ))) >> number_literal)) ;)) (expression_statement "puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);" (assignment_expression "puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13)" identifier = (cast_expression "(undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13)" (parenthesized_expression "(**(code **)(puVar54 + 0x153f48))" ( (pointer_expression "**(code **)(puVar54 + 0x153f48)" * (pointer_expression "*(code **)(puVar54 + 0x153f48)" * (cast_expression "(code **)(puVar54 + 0x153f48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153f48)" ( (binary_expression "puVar54 + 0x153f48" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar50 + 0x12),uVar13)" ( (pointer_expression "*(undefined4 *)(puVar50 + 0x12)" * (cast_expression "(undefined4 *)(puVar50 + 0x12)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12)" ( (binary_expression "puVar50 + 0x12" identifier + number_literal) )))) , identifier ))))) ;) (if_statement "if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;" if (parenthesized_expression "(puVar27 == (undefined1 *)0x0)" ( (binary_expression "puVar27 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025569c;" goto statement_identifier ;)) (expression_statement "iVar24 = *(int *)(puVar50 + 0x12);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x12)" identifier = (pointer_expression "*(int *)(puVar50 + 0x12)" * (cast_expression "(int *)(puVar50 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12)" ( (binary_expression "puVar50 + 0x12" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }" if (parenthesized_expression "(0 < iVar24)" ( (binary_expression "0 < iVar24" number_literal < identifier) )) (compound_statement "{\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }" { (expression_statement "iVar32 = 0;" (assignment_expression "iVar32 = 0" identifier = number_literal) ;) (expression_statement "iVar43 = *(int *)(puVar54 + 0x153324);" (assignment_expression "iVar43 = *(int *)(puVar54 + 0x153324)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153324)" * (cast_expression "(int *)(puVar54 + 0x153324)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153324)" ( (binary_expression "puVar54 + 0x153324" identifier + number_literal) ))))) ;) (expression_statement "iVar34 = 0;" (assignment_expression "iVar34 = 0" identifier = number_literal) ;) (expression_statement "dVar65 = *(double *)(iVar51 + 0x1410);" (assignment_expression "dVar65 = *(double *)(iVar51 + 0x1410)" identifier = (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "iVar42 = *(int *)(puVar54 + 0x15331c);" (assignment_expression "iVar42 = *(int *)(puVar54 + 0x15331c)" identifier = (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) ))))) ;) (expression_statement "dVar57 = *(double *)(iVar43 + -0x5b00);" (assignment_expression "dVar57 = *(double *)(iVar43 + -0x5b00)" identifier = (pointer_expression "*(double *)(iVar43 + -0x5b00)" * (cast_expression "(double *)(iVar43 + -0x5b00)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar43 + -0x5b00)" ( (binary_expression "iVar43 + -0x5b00" identifier + number_literal) ))))) ;) (expression_statement "iVar41 = *(int *)(puVar54 + 0x153324);" (assignment_expression "iVar41 = *(int *)(puVar54 + 0x153324)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153324)" * (cast_expression "(int *)(puVar54 + 0x153324)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153324)" ( (binary_expression "puVar54 + 0x153324" identifier + number_literal) ))))) ;) (expression_statement "iVar40 = *(int *)(puVar54 + 0x153324);" (assignment_expression "iVar40 = *(int *)(puVar54 + 0x153324)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153324)" * (cast_expression "(int *)(puVar54 + 0x153324)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153324)" ( (binary_expression "puVar54 + 0x153324" identifier + number_literal) ))))) ;) (expression_statement "iVar39 = *(int *)(puVar54 + 0x153324);" (assignment_expression "iVar39 = *(int *)(puVar54 + 0x153324)" identifier = (pointer_expression "*(int *)(puVar54 + 0x153324)" * (cast_expression "(int *)(puVar54 + 0x153324)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153324)" ( (binary_expression "puVar54 + 0x153324" identifier + number_literal) ))))) ;) (expression_statement "dVar56 = *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar56 = *(double *)(iVar49 + 0x1400)" identifier = (pointer_expression "*(double *)(iVar49 + 0x1400)" * (cast_expression "(double *)(iVar49 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1400)" ( (binary_expression "iVar49 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "fVar62 = *(float *)(iVar42 + 0x1a50);" (assignment_expression "fVar62 = *(float *)(iVar42 + 0x1a50)" identifier = (pointer_expression "*(float *)(iVar42 + 0x1a50)" * (cast_expression "(float *)(iVar42 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar42 + 0x1a50)" ( (binary_expression "iVar42 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "dVar63 = *(double *)(iVar41 + -0x5af8);" (assignment_expression "dVar63 = *(double *)(iVar41 + -0x5af8)" identifier = (pointer_expression "*(double *)(iVar41 + -0x5af8)" * (cast_expression "(double *)(iVar41 + -0x5af8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar41 + -0x5af8)" ( (binary_expression "iVar41 + -0x5af8" identifier + number_literal) ))))) ;) (expression_statement "dVar61 = *(double *)(iVar40 + -0x5af0);" (assignment_expression "dVar61 = *(double *)(iVar40 + -0x5af0)" identifier = (pointer_expression "*(double *)(iVar40 + -0x5af0)" * (cast_expression "(double *)(iVar40 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar40 + -0x5af0)" ( (binary_expression "iVar40 + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "dVar64 = *(double *)(iVar39 + -0x5ae8);" (assignment_expression "dVar64 = *(double *)(iVar39 + -0x5ae8)" identifier = (pointer_expression "*(double *)(iVar39 + -0x5ae8)" * (cast_expression "(double *)(iVar39 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + -0x5ae8)" ( (binary_expression "iVar39 + -0x5ae8" identifier + number_literal) ))))) ;) (expression_statement "puVar28 = puVar27;" (assignment_expression "puVar28 = puVar27" identifier = identifier) ;) (do_statement "do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);" do (compound_statement "{\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              }" { (if_statement "if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar46 == 0x10)" ( (binary_expression "iVar46 == 0x10" identifier == number_literal) )) (compound_statement "{\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }" { (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x28" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }" { (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) }) (else_clause "else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" else (if_statement "if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" if (parenthesized_expression "(fVar59 < *(float *)(iVar42 + 0x1a50))" ( (binary_expression "fVar59 < *(float *)(iVar42 + 0x1a50)" identifier < (pointer_expression "*(float *)(iVar42 + 0x1a50)" * (cast_expression "(float *)(iVar42 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar42 + 0x1a50)" ( (binary_expression "iVar42 + 0x1a50" identifier + number_literal) ))))) )) (compound_statement "{\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }" { (expression_statement "dVar58 = (double)fVar59 + dVar56;" (assignment_expression "dVar58 = (double)fVar59 + dVar56" identifier = (binary_expression "(double)fVar59 + dVar56" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" if (parenthesized_expression "(dVar58 < dVar65)" ( (binary_expression "dVar58 < dVar65" identifier < identifier) )) (compound_statement "{\n                      uVar60 = (undefined2)(int)dVar58;\n                    }" { (expression_statement "uVar60 = (undefined2)(int)dVar58;" (assignment_expression "uVar60 = (undefined2)(int)dVar58" identifier = (cast_expression "(undefined2)(int)dVar58" ( (type_descriptor "undefined2" type_identifier) ) (cast_expression "(int)dVar58" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" else (compound_statement "{\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" { (expression_statement "uVar60 = (undefined2)(int)(dVar58 - dVar65);" (assignment_expression "uVar60 = (undefined2)(int)(dVar58 - dVar65)" identifier = (call_expression "(undefined2)(int)(dVar58 - dVar65)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar58 - dVar65)" ( (binary_expression "dVar58 - dVar65" identifier - identifier) )))) ;) }))) (expression_statement "uVar45 = (undefined1)((ushort)uVar60 >> 8);" (assignment_expression "uVar45 = (undefined1)((ushort)uVar60 >> 8)" identifier = (call_expression "(undefined1)((ushort)uVar60 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ushort)uVar60 >> 8)" ( (binary_expression "(ushort)uVar60 >> 8" (cast_expression "(ushort)uVar60" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar44 = (undefined1)uVar60;" (assignment_expression "uVar44 = (undefined1)uVar60" identifier = (cast_expression "(undefined1)uVar60" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" else (compound_statement "{\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" { (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" identifier = number_literal) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) }))))) (expression_statement "*puVar28 = uVar45;" (assignment_expression "*puVar28 = uVar45" (pointer_expression "*puVar28" * identifier) = identifier) ;) (expression_statement "puVar28[1] = uVar44;" (assignment_expression "puVar28[1] = uVar44" (subscript_expression "puVar28[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x30" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }" { (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) }) (else_clause "else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" else (if_statement "if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" if (parenthesized_expression "(fVar59 < *(float *)(iVar42 + 0x1a50))" ( (binary_expression "fVar59 < *(float *)(iVar42 + 0x1a50)" identifier < (pointer_expression "*(float *)(iVar42 + 0x1a50)" * (cast_expression "(float *)(iVar42 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar42 + 0x1a50)" ( (binary_expression "iVar42 + 0x1a50" identifier + number_literal) ))))) )) (compound_statement "{\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }" { (expression_statement "dVar58 = (double)fVar59 + dVar56;" (assignment_expression "dVar58 = (double)fVar59 + dVar56" identifier = (binary_expression "(double)fVar59 + dVar56" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" if (parenthesized_expression "(dVar58 < dVar65)" ( (binary_expression "dVar58 < dVar65" identifier < identifier) )) (compound_statement "{\n                      uVar60 = (undefined2)(int)dVar58;\n                    }" { (expression_statement "uVar60 = (undefined2)(int)dVar58;" (assignment_expression "uVar60 = (undefined2)(int)dVar58" identifier = (cast_expression "(undefined2)(int)dVar58" ( (type_descriptor "undefined2" type_identifier) ) (cast_expression "(int)dVar58" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" else (compound_statement "{\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" { (expression_statement "uVar60 = (undefined2)(int)(dVar58 - dVar65);" (assignment_expression "uVar60 = (undefined2)(int)(dVar58 - dVar65)" identifier = (call_expression "(undefined2)(int)(dVar58 - dVar65)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar58 - dVar65)" ( (binary_expression "dVar58 - dVar65" identifier - identifier) )))) ;) }))) (expression_statement "uVar45 = (undefined1)((ushort)uVar60 >> 8);" (assignment_expression "uVar45 = (undefined1)((ushort)uVar60 >> 8)" identifier = (call_expression "(undefined1)((ushort)uVar60 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ushort)uVar60 >> 8)" ( (binary_expression "(ushort)uVar60 >> 8" (cast_expression "(ushort)uVar60" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar44 = (undefined1)uVar60;" (assignment_expression "uVar44 = (undefined1)uVar60" identifier = (cast_expression "(undefined1)uVar60" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" else (compound_statement "{\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" { (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" identifier = number_literal) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) }))))) (expression_statement "puVar28[2] = uVar45;" (assignment_expression "puVar28[2] = uVar45" (subscript_expression "puVar28[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[3] = uVar44;" (assignment_expression "puVar28[3] = uVar44" (subscript_expression "puVar28[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x38" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }" { (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) }) (else_clause "else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" else (if_statement "if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" if (parenthesized_expression "(fVar59 < fVar62)" ( (binary_expression "fVar59 < fVar62" identifier < identifier) )) (compound_statement "{\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }" { (expression_statement "dVar58 = (double)fVar59 + dVar67;" (assignment_expression "dVar58 = (double)fVar59 + dVar67" identifier = (binary_expression "(double)fVar59 + dVar67" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }" if (parenthesized_expression "(dVar58 < dVar66)" ( (binary_expression "dVar58 < dVar66" identifier < identifier) )) (compound_statement "{\n                      uVar60 = (undefined2)(int)dVar58;\n                    }" { (expression_statement "uVar60 = (undefined2)(int)dVar58;" (assignment_expression "uVar60 = (undefined2)(int)dVar58" identifier = (cast_expression "(undefined2)(int)dVar58" ( (type_descriptor "undefined2" type_identifier) ) (cast_expression "(int)dVar58" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }" else (compound_statement "{\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }" { (expression_statement "uVar60 = (undefined2)(int)(dVar58 - dVar66);" (assignment_expression "uVar60 = (undefined2)(int)(dVar58 - dVar66)" identifier = (call_expression "(undefined2)(int)(dVar58 - dVar66)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar58 - dVar66)" ( (binary_expression "dVar58 - dVar66" identifier - identifier) )))) ;) }))) (expression_statement "uVar45 = (undefined1)((ushort)uVar60 >> 8);" (assignment_expression "uVar45 = (undefined1)((ushort)uVar60 >> 8)" identifier = (call_expression "(undefined1)((ushort)uVar60 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ushort)uVar60 >> 8)" ( (binary_expression "(ushort)uVar60 >> 8" (cast_expression "(ushort)uVar60" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar44 = (undefined1)uVar60;" (assignment_expression "uVar44 = (undefined1)uVar60" identifier = (cast_expression "(undefined1)uVar60" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" else (compound_statement "{\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" { (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" identifier = number_literal) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) }))))) (expression_statement "puVar28[4] = uVar45;" (assignment_expression "puVar28[4] = uVar45" (subscript_expression "puVar28[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29 = puVar28 + 6;" (assignment_expression "puVar29 = puVar28 + 6" identifier = (binary_expression "puVar28 + 6" identifier + number_literal)) ;) (expression_statement "puVar28[5] = uVar44;" (assignment_expression "puVar28[5] = uVar44" (subscript_expression "puVar28[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }" else (if_statement "if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar46 == 0x20)" ( (binary_expression "iVar46 == 0x20" identifier == number_literal) )) (compound_statement "{\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }" { (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x28" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }" { (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" identifier = number_literal) ;) (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" else (compound_statement "{\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" { (expression_statement "dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);" (assignment_expression "dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00)" identifier = (binary_expression "(double)fVar59 * *(double *)(iVar43 + -0x5b00)" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(iVar43 + -0x5b00)" * (cast_expression "(double *)(iVar43 + -0x5b00)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar43 + -0x5b00)" ( (binary_expression "iVar43 + -0x5b00" identifier + number_literal) )))))) ;) (expression_statement "uVar37 = 0xff;" (assignment_expression "uVar37 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" if (parenthesized_expression "(dVar58 < *(double *)(iVar41 + -0x5af8))" ( (binary_expression "dVar58 < *(double *)(iVar41 + -0x5af8)" identifier < (pointer_expression "*(double *)(iVar41 + -0x5af8)" * (cast_expression "(double *)(iVar41 + -0x5af8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar41 + -0x5af8)" ( (binary_expression "iVar41 + -0x5af8" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }" { (expression_statement "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400)" identifier = (binary_expression "dVar58 + *(double *)(iVar49 + 0x1400)" identifier + (pointer_expression "*(double *)(iVar49 + 0x1400)" * (cast_expression "(double *)(iVar49 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1400)" ( (binary_expression "iVar49 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" if (parenthesized_expression "(dVar58 < *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 < *(double *)(iVar51 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n                        uVar36 = (uint)dVar58;\n                      }" { (expression_statement "uVar36 = (uint)dVar58;" (assignment_expression "uVar36 = (uint)dVar58" identifier = (cast_expression "(uint)dVar58" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" else (compound_statement "{\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" { (expression_statement "uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;" (assignment_expression "uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar58 - *(double *)(iVar51 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar58 - *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 - *(double *)(iVar51 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "uVar52 = (undefined1)(uVar36 >> 0x18);" (assignment_expression "uVar52 = (undefined1)(uVar36 >> 0x18)" identifier = (call_expression "(undefined1)(uVar36 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 0x18)" ( (binary_expression "uVar36 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar45 = (undefined1)(uVar36 >> 0x10);" (assignment_expression "uVar45 = (undefined1)(uVar36 >> 0x10)" identifier = (call_expression "(undefined1)(uVar36 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 0x10)" ( (binary_expression "uVar36 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar44 = (undefined1)(uVar36 >> 8);" (assignment_expression "uVar44 = (undefined1)(uVar36 >> 8)" identifier = (call_expression "(undefined1)(uVar36 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 8)" ( (binary_expression "uVar36 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uVar37 = (undefined1)uVar36;" (assignment_expression "uVar37 = (undefined1)uVar36" identifier = (cast_expression "(undefined1)uVar36" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" else (compound_statement "{\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" { (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" identifier = number_literal) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "*puVar28 = uVar52;" (assignment_expression "*puVar28 = uVar52" (pointer_expression "*puVar28" * identifier) = identifier) ;) (expression_statement "puVar28[1] = uVar45;" (assignment_expression "puVar28[1] = uVar45" (subscript_expression "puVar28[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[2] = uVar44;" (assignment_expression "puVar28[2] = uVar44" (subscript_expression "puVar28[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[3] = uVar37;" (assignment_expression "puVar28[3] = uVar37" (subscript_expression "puVar28[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x30" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }" { (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" identifier = number_literal) ;) (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" else (compound_statement "{\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" { (expression_statement "dVar58 = (double)fVar59 * dVar57;" (assignment_expression "dVar58 = (double)fVar59 * dVar57" identifier = (binary_expression "(double)fVar59 * dVar57" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "uVar37 = 0xff;" (assignment_expression "uVar37 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" if (parenthesized_expression "(dVar58 < *(double *)(iVar41 + -0x5af8))" ( (binary_expression "dVar58 < *(double *)(iVar41 + -0x5af8)" identifier < (pointer_expression "*(double *)(iVar41 + -0x5af8)" * (cast_expression "(double *)(iVar41 + -0x5af8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar41 + -0x5af8)" ( (binary_expression "iVar41 + -0x5af8" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }" { (expression_statement "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400)" identifier = (binary_expression "dVar58 + *(double *)(iVar49 + 0x1400)" identifier + (pointer_expression "*(double *)(iVar49 + 0x1400)" * (cast_expression "(double *)(iVar49 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1400)" ( (binary_expression "iVar49 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" if (parenthesized_expression "(dVar58 < *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 < *(double *)(iVar51 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n                        uVar36 = (uint)dVar58;\n                      }" { (expression_statement "uVar36 = (uint)dVar58;" (assignment_expression "uVar36 = (uint)dVar58" identifier = (cast_expression "(uint)dVar58" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" else (compound_statement "{\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" { (expression_statement "uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;" (assignment_expression "uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar58 - *(double *)(iVar51 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar58 - *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 - *(double *)(iVar51 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "uVar52 = (undefined1)(uVar36 >> 0x18);" (assignment_expression "uVar52 = (undefined1)(uVar36 >> 0x18)" identifier = (call_expression "(undefined1)(uVar36 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 0x18)" ( (binary_expression "uVar36 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar45 = (undefined1)(uVar36 >> 0x10);" (assignment_expression "uVar45 = (undefined1)(uVar36 >> 0x10)" identifier = (call_expression "(undefined1)(uVar36 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 0x10)" ( (binary_expression "uVar36 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar44 = (undefined1)(uVar36 >> 8);" (assignment_expression "uVar44 = (undefined1)(uVar36 >> 8)" identifier = (call_expression "(undefined1)(uVar36 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 8)" ( (binary_expression "uVar36 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uVar37 = (undefined1)uVar36;" (assignment_expression "uVar37 = (undefined1)uVar36" identifier = (cast_expression "(undefined1)uVar36" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" else (compound_statement "{\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" { (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" identifier = number_literal) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "puVar28[4] = uVar52;" (assignment_expression "puVar28[4] = uVar52" (subscript_expression "puVar28[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[5] = uVar45;" (assignment_expression "puVar28[5] = uVar45" (subscript_expression "puVar28[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[6] = uVar44;" (assignment_expression "puVar28[6] = uVar44" (subscript_expression "puVar28[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[7] = uVar37;" (assignment_expression "puVar28[7] = uVar37" (subscript_expression "puVar28[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x38" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }" { (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" identifier = number_literal) ;) (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" else (compound_statement "{\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" { (expression_statement "dVar58 = (double)fVar59 * dVar57;" (assignment_expression "dVar58 = (double)fVar59 * dVar57" identifier = (binary_expression "(double)fVar59 * dVar57" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" if (parenthesized_expression "(dVar58 < dVar63)" ( (binary_expression "dVar58 < dVar63" identifier < identifier) )) (compound_statement "{\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }" { (expression_statement "dVar58 = dVar58 + dVar56;" (assignment_expression "dVar58 = dVar58 + dVar56" identifier = (binary_expression "dVar58 + dVar56" identifier + identifier)) ;) (if_statement "if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }" if (parenthesized_expression "(dVar58 < dVar65)" ( (binary_expression "dVar58 < dVar65" identifier < identifier) )) (compound_statement "{\n                        uVar36 = (uint)dVar58;\n                      }" { (expression_statement "uVar36 = (uint)dVar58;" (assignment_expression "uVar36 = (uint)dVar58" identifier = (cast_expression "(uint)dVar58" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }" else (compound_statement "{\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }" { (expression_statement "uVar36 = (int)(dVar58 - dVar65) | 0x80000000;" (assignment_expression "uVar36 = (int)(dVar58 - dVar65) | 0x80000000" identifier = (binary_expression "(int)(dVar58 - dVar65) | 0x80000000" (cast_expression "(int)(dVar58 - dVar65)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar58 - dVar65)" ( (binary_expression "dVar58 - dVar65" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "uVar52 = (undefined1)uVar36;" (assignment_expression "uVar52 = (undefined1)uVar36" identifier = (cast_expression "(undefined1)uVar36" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uVar45 = (undefined1)(uVar36 >> 8);" (assignment_expression "uVar45 = (undefined1)(uVar36 >> 8)" identifier = (call_expression "(undefined1)(uVar36 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 8)" ( (binary_expression "uVar36 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uVar44 = (undefined1)(uVar36 >> 0x10);" (assignment_expression "uVar44 = (undefined1)(uVar36 >> 0x10)" identifier = (call_expression "(undefined1)(uVar36 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 0x10)" ( (binary_expression "uVar36 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar37 = (undefined1)(uVar36 >> 0x18);" (assignment_expression "uVar37 = (undefined1)(uVar36 >> 0x18)" identifier = (call_expression "(undefined1)(uVar36 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar36 >> 0x18)" ( (binary_expression "uVar36 >> 0x18" identifier >> number_literal) )))) ;) }) (else_clause "else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" else (compound_statement "{\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" { (expression_statement "uVar37 = 0xff;" (assignment_expression "uVar37 = 0xff" identifier = number_literal) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "puVar28[8] = uVar37;" (assignment_expression "puVar28[8] = uVar37" (subscript_expression "puVar28[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29 = puVar28 + 0xc;" (assignment_expression "puVar29 = puVar28 + 0xc" identifier = (binary_expression "puVar28 + 0xc" identifier + number_literal)) ;) (expression_statement "puVar28[9] = uVar44;" (assignment_expression "puVar28[9] = uVar44" (subscript_expression "puVar28[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[10] = uVar45;" (assignment_expression "puVar28[10] = uVar45" (subscript_expression "puVar28[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar28[0xb] = uVar52;" (assignment_expression "puVar28[0xb] = uVar52" (subscript_expression "puVar28[0xb]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }" else (compound_statement "{\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }" { (if_statement "if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }" if (parenthesized_expression "(iVar46 != 8)" ( (binary_expression "iVar46 != 8" identifier != number_literal) )) (compound_statement "{\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }" { (expression_statement "(**(code **)(puVar54 + 0x1539fc))(puVar27);" (call_expression "(**(code **)(puVar54 + 0x1539fc))(puVar27)" (parenthesized_expression "(**(code **)(puVar54 + 0x1539fc))" ( (pointer_expression "**(code **)(puVar54 + 0x1539fc)" * (pointer_expression "*(code **)(puVar54 + 0x1539fc)" * (cast_expression "(code **)(puVar54 + 0x1539fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1539fc)" ( (binary_expression "puVar54 + 0x1539fc" identifier + number_literal) ))))) )) (argument_list "(puVar27)" ( identifier ))) ;) (expression_statement "puVar8 = (ushort *)0x5ca;" (assignment_expression "puVar8 = (ushort *)0x5ca" identifier = (cast_expression "(ushort *)0x5ca" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);" (call_expression "(**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0)" (parenthesized_expression "(**(code **)(puVar54 + 0x15395c))" ( (pointer_expression "**(code **)(puVar54 + 0x15395c)" * (pointer_expression "*(code **)(puVar54 + 0x15395c)" * (cast_expression "(code **)(puVar54 + 0x15395c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15395c)" ( (binary_expression "puVar54 + 0x15395c" identifier + number_literal) ))))) )) (argument_list "(puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0)" ( identifier , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7284" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(puVar54 + 0x153320) + -0x5aa8" (pointer_expression "*(int *)(puVar54 + 0x153320)" * (cast_expression "(int *)(puVar54 + 0x153320)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153320)" ( (binary_expression "puVar54 + 0x153320" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x15331c) + 0x3e28" (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "puVar50 + 0x1a0" identifier + number_literal) ))) ;) (if_statement "if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }" if (parenthesized_expression "(*(int *)(iVar10 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar10 + 0xc) == 0" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }" { (expression_statement "(**(code **)(puVar54 + 0x1540c4))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x1540c4))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1540c4))" ( (pointer_expression "**(code **)(puVar54 + 0x1540c4)" * (pointer_expression "*(code **)(puVar54 + 0x1540c4)" * (cast_expression "(code **)(puVar54 + 0x1540c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1540c4)" ( (binary_expression "puVar54 + 0x1540c4" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))) ;) }) (else_clause "else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }" else (compound_statement "{\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }" { (do_statement "do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);" do (compound_statement "{\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      }" { (expression_statement "puVar38 = puVar50;" (assignment_expression "puVar38 = puVar50" identifier = identifier) ;) (expression_statement "puVar50 = *(ushort **)(puVar38 + 0x19b2);" (assignment_expression "puVar50 = *(ushort **)(puVar38 + 0x19b2)" identifier = (pointer_expression "*(ushort **)(puVar38 + 0x19b2)" * (cast_expression "(ushort **)(puVar38 + 0x19b2)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x19b2)" ( (binary_expression "puVar38 + 0x19b2" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(puVar50 != (ushort *)0x0)" ( (binary_expression "puVar50 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "(**(code **)(puVar54 + 0x1540c4))(puVar38);" (call_expression "(**(code **)(puVar54 + 0x1540c4))(puVar38)" (parenthesized_expression "(**(code **)(puVar54 + 0x1540c4))" ( (pointer_expression "**(code **)(puVar54 + 0x1540c4)" * (pointer_expression "*(code **)(puVar54 + 0x1540c4)" * (cast_expression "(code **)(puVar54 + 0x1540c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1540c4)" ( (binary_expression "puVar54 + 0x1540c4" identifier + number_literal) ))))) )) (argument_list "(puVar38)" ( identifier ))) ;) }))) (goto_statement "goto LAB_0025569c;" goto statement_identifier ;) })) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x28" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar45 = 0;\n                  }" { (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" else (compound_statement "{\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" { (expression_statement "dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);" (assignment_expression "dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0)" identifier = (binary_expression "(double)fVar59 / *(double *)(iVar40 + -0x5af0)" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(iVar40 + -0x5af0)" * (cast_expression "(double *)(iVar40 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar40 + -0x5af0)" ( (binary_expression "iVar40 + -0x5af0" identifier + number_literal) )))))) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }" if (parenthesized_expression "(dVar58 < *(double *)(iVar39 + -0x5ae8))" ( (binary_expression "dVar58 < *(double *)(iVar39 + -0x5ae8)" identifier < (pointer_expression "*(double *)(iVar39 + -0x5ae8)" * (cast_expression "(double *)(iVar39 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + -0x5ae8)" ( (binary_expression "iVar39 + -0x5ae8" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }" { (expression_statement "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400)" identifier = (binary_expression "dVar58 + *(double *)(iVar49 + 0x1400)" identifier + (pointer_expression "*(double *)(iVar49 + 0x1400)" * (cast_expression "(double *)(iVar49 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1400)" ( (binary_expression "iVar49 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" if (parenthesized_expression "(dVar58 < *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 < *(double *)(iVar51 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n                        uVar45 = (undefined1)(int)dVar58;\n                      }" { (expression_statement "uVar45 = (undefined1)(int)dVar58;" (assignment_expression "uVar45 = (undefined1)(int)dVar58" identifier = (cast_expression "(undefined1)(int)dVar58" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar58" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" else (compound_statement "{\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" { (expression_statement "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));" (assignment_expression "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" identifier = (call_expression "(undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar58 - *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 - *(double *)(iVar51 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )))) ;) }))) })) }))) (expression_statement "*puVar28 = uVar45;" (assignment_expression "*puVar28 = uVar45" (pointer_expression "*puVar28" * identifier) = identifier) ;) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x30" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uVar45 = 0;\n                  }" { (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" else (compound_statement "{\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" { (expression_statement "dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);" (assignment_expression "dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0)" identifier = (binary_expression "(double)fVar59 / *(double *)(iVar40 + -0x5af0)" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(iVar40 + -0x5af0)" * (cast_expression "(double *)(iVar40 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar40 + -0x5af0)" ( (binary_expression "iVar40 + -0x5af0" identifier + number_literal) )))))) ;) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }" if (parenthesized_expression "(dVar58 < *(double *)(iVar39 + -0x5ae8))" ( (binary_expression "dVar58 < *(double *)(iVar39 + -0x5ae8)" identifier < (pointer_expression "*(double *)(iVar39 + -0x5ae8)" * (cast_expression "(double *)(iVar39 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + -0x5ae8)" ( (binary_expression "iVar39 + -0x5ae8" identifier + number_literal) ))))) )) (compound_statement "{\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }" { (expression_statement "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400)" identifier = (binary_expression "dVar58 + *(double *)(iVar49 + 0x1400)" identifier + (pointer_expression "*(double *)(iVar49 + 0x1400)" * (cast_expression "(double *)(iVar49 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1400)" ( (binary_expression "iVar49 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" if (parenthesized_expression "(dVar58 < *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 < *(double *)(iVar51 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n                        uVar45 = (undefined1)(int)dVar58;\n                      }" { (expression_statement "uVar45 = (undefined1)(int)dVar58;" (assignment_expression "uVar45 = (undefined1)(int)dVar58" identifier = (cast_expression "(undefined1)(int)dVar58" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar58" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" else (compound_statement "{\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" { (expression_statement "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));" (assignment_expression "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" identifier = (call_expression "(undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar58 - *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 - *(double *)(iVar51 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )))) ;) }))) })) }))) (expression_statement "puVar28[1] = uVar45;" (assignment_expression "puVar28[1] = uVar45" (subscript_expression "puVar28[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" identifier = (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" * (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" ( (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x38" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" * (cast_expression "(int *)(puVar50 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x14)" ( (binary_expression "puVar50 + 0x14" identifier + number_literal) )))) + identifier) + number_literal) )))))) ;) (if_statement "if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }" if (parenthesized_expression "(fVar59 <= 0.0)" ( (binary_expression "fVar59 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }" { (expression_statement "puVar29 = puVar28 + 3;" (assignment_expression "puVar29 = puVar28 + 3" identifier = (binary_expression "puVar28 + 3" identifier + number_literal)) ;) (expression_statement "puVar28[2] = 0;" (assignment_expression "puVar28[2] = 0" (subscript_expression "puVar28[2]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }" else (compound_statement "{\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }" { (expression_statement "dVar58 = (double)fVar59 / dVar61;" (assignment_expression "dVar58 = (double)fVar59 / dVar61" identifier = (binary_expression "(double)fVar59 / dVar61" (cast_expression "(double)fVar59" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }" if (parenthesized_expression "(dVar58 < dVar64)" ( (binary_expression "dVar58 < dVar64" identifier < identifier) )) (compound_statement "{\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }" { (expression_statement "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400)" identifier = (binary_expression "dVar58 + *(double *)(iVar49 + 0x1400)" identifier + (pointer_expression "*(double *)(iVar49 + 0x1400)" * (cast_expression "(double *)(iVar49 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1400)" ( (binary_expression "iVar49 + 0x1400" identifier + number_literal) )))))) ;) (if_statement "if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" if (parenthesized_expression "(dVar58 < *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 < *(double *)(iVar51 + 0x1410)" identifier < (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n                        uVar45 = (undefined1)(int)dVar58;\n                      }" { (expression_statement "uVar45 = (undefined1)(int)dVar58;" (assignment_expression "uVar45 = (undefined1)(int)dVar58" identifier = (cast_expression "(undefined1)(int)dVar58" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar58" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" else (compound_statement "{\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" { (expression_statement "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));" (assignment_expression "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" identifier = (call_expression "(undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar58 - *(double *)(iVar51 + 0x1410))" ( (binary_expression "dVar58 - *(double *)(iVar51 + 0x1410)" identifier - (pointer_expression "*(double *)(iVar51 + 0x1410)" * (cast_expression "(double *)(iVar51 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + 0x1410)" ( (binary_expression "iVar51 + 0x1410" identifier + number_literal) ))))) )))) ;) }))) (expression_statement "puVar28[2] = uVar45;" (assignment_expression "puVar28[2] = uVar45" (subscript_expression "puVar28[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29 = puVar28 + 3;" (assignment_expression "puVar29 = puVar28 + 3" identifier = (binary_expression "puVar28 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }" else (compound_statement "{\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }" { (expression_statement "puVar29 = puVar28 + 3;" (assignment_expression "puVar29 = puVar28 + 3" identifier = (binary_expression "puVar28 + 3" identifier + number_literal)) ;) (expression_statement "puVar28[2] = 0xff;" (assignment_expression "puVar28[2] = 0xff" (subscript_expression "puVar28[2]" identifier [ number_literal ]) = number_literal) ;) }))) }))) }))))) (expression_statement "iVar24 = *(int *)(puVar50 + 0x12);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x12)" identifier = (pointer_expression "*(int *)(puVar50 + 0x12)" * (cast_expression "(int *)(puVar50 + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar50 + 0x12)" ( (binary_expression "puVar50 + 0x12" identifier + number_literal) ))))) ;) (expression_statement "iVar34 = iVar34 + 1;" (assignment_expression "iVar34 = iVar34 + 1" identifier = (binary_expression "iVar34 + 1" identifier + number_literal)) ;) (expression_statement "iVar32 = iVar32 + 0x58;" (assignment_expression "iVar32 = iVar32 + 0x58" identifier = (binary_expression "iVar32 + 0x58" identifier + number_literal)) ;) (expression_statement "puVar28 = puVar29;" (assignment_expression "puVar28 = puVar29" identifier = identifier) ;) }) while (parenthesized_expression "(iVar34 < iVar24)" ( (binary_expression "iVar34 < iVar24" identifier < identifier) )) ;) })) (expression_statement "(**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);" (call_expression "(**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27)" (parenthesized_expression "(**(code **)(puVar54 + 0x1543d0))" ( (pointer_expression "**(code **)(puVar54 + 0x1543d0)" * (pointer_expression "*(code **)(puVar54 + 0x1543d0)" * (cast_expression "(code **)(puVar54 + 0x1543d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1543d0)" ( (binary_expression "puVar54 + 0x1543d0" identifier + number_literal) ))))) )) (argument_list "(puVar50,uVar13 * iVar24,puVar27)" ( identifier , (binary_expression "uVar13 * iVar24" identifier * identifier) , identifier ))) ;) (expression_statement "(**(code **)(puVar54 + 0x1539fc))(puVar27);" (call_expression "(**(code **)(puVar54 + 0x1539fc))(puVar27)" (parenthesized_expression "(**(code **)(puVar54 + 0x1539fc))" ( (pointer_expression "**(code **)(puVar54 + 0x1539fc)" * (pointer_expression "*(code **)(puVar54 + 0x1539fc)" * (cast_expression "(code **)(puVar54 + 0x1539fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1539fc)" ( (binary_expression "puVar54 + 0x1539fc" identifier + number_literal) ))))) )) (argument_list "(puVar27)" ( identifier ))) ;) })) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1537fc);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1537fc)" identifier = (pointer_expression "*(code **)(puVar54 + 0x1537fc)" * (cast_expression "(code **)(puVar54 + 0x1537fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537fc)" ( (binary_expression "puVar54 + 0x1537fc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }" else (compound_statement "{\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }" { (expression_statement "(**(code **)(puVar54 + 0x1538c8))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x1538c8))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1538c8))" ( (pointer_expression "**(code **)(puVar54 + 0x1538c8)" * (pointer_expression "*(code **)(puVar54 + 0x1538c8)" * (cast_expression "(code **)(puVar54 + 0x1538c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1538c8)" ( (binary_expression "puVar54 + 0x1538c8" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))) ;) (while_statement "while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }" { (expression_statement "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);" (assignment_expression "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50)" identifier = (call_expression "(**(code **)(puVar54 + 0x153948))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153948))" ( (pointer_expression "**(code **)(puVar54 + 0x153948)" * (pointer_expression "*(code **)(puVar54 + 0x153948)" * (cast_expression "(code **)(puVar54 + 0x153948)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153948)" ( (binary_expression "puVar54 + 0x153948" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier )))) ;) (if_statement "if (iVar24 == 0) break;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24)" identifier = (call_expression "(**(code **)(puVar54 + 0x153e14))(puVar50,iVar24)" (parenthesized_expression "(**(code **)(puVar54 + 0x153e14))" ( (pointer_expression "**(code **)(puVar54 + 0x153e14)" * (pointer_expression "*(code **)(puVar54 + 0x153e14)" * (cast_expression "(code **)(puVar54 + 0x153e14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153e14)" ( (binary_expression "puVar54 + 0x153e14" identifier + number_literal) ))))) )) (argument_list "(puVar50,iVar24)" ( identifier , identifier )))) ;) (expression_statement "uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);" (assignment_expression "uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48)" identifier = (call_expression "(**(code **)(puVar54 + 0x153784))(uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x153784))" ( (pointer_expression "**(code **)(puVar54 + 0x153784)" * (pointer_expression "*(code **)(puVar54 + 0x153784)" * (cast_expression "(code **)(puVar54 + 0x153784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153784)" ( (binary_expression "puVar54 + 0x153784" identifier + number_literal) ))))) )) (argument_list "(uVar48)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);" (call_expression "(**(code **)(puVar54 + 0x153d10))(puVar50,uVar23)" (parenthesized_expression "(**(code **)(puVar54 + 0x153d10))" ( (pointer_expression "**(code **)(puVar54 + 0x153d10)" * (pointer_expression "*(code **)(puVar54 + 0x153d10)" * (cast_expression "(code **)(puVar54 + 0x153d10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153d10)" ( (binary_expression "puVar54 + 0x153d10" identifier + number_literal) ))))) )) (argument_list "(puVar50,uVar23)" ( identifier , identifier ))) ;) (expression_statement "uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);" (assignment_expression "uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48)" identifier = (call_expression "(**(code **)(puVar54 + 0x153784))(uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x153784))" ( (pointer_expression "**(code **)(puVar54 + 0x153784)" * (pointer_expression "*(code **)(puVar54 + 0x153784)" * (cast_expression "(code **)(puVar54 + 0x153784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153784)" ( (binary_expression "puVar54 + 0x153784" identifier + number_literal) ))))) )) (argument_list "(uVar48)" ( identifier )))) ;) (expression_statement "uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48)" identifier = (call_expression "(**(code **)(puVar54 + 0x1538a4))(uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1538a4))" ( (pointer_expression "**(code **)(puVar54 + 0x1538a4)" * (pointer_expression "*(code **)(puVar54 + 0x1538a4)" * (cast_expression "(code **)(puVar54 + 0x1538a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1538a4)" ( (binary_expression "puVar54 + 0x1538a4" identifier + number_literal) ))))) )) (argument_list "(uVar48)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1543d0))" ( (pointer_expression "**(code **)(puVar54 + 0x1543d0)" * (pointer_expression "*(code **)(puVar54 + 0x1543d0)" * (cast_expression "(code **)(puVar54 + 0x1543d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1543d0)" ( (binary_expression "puVar54 + 0x1543d0" identifier + number_literal) ))))) )) (argument_list "(puVar50,uVar23,uVar48)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1537fc);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1537fc)" identifier = (pointer_expression "*(code **)(puVar54 + 0x1537fc)" * (cast_expression "(code **)(puVar54 + 0x1537fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1537fc)" ( (binary_expression "puVar54 + 0x1537fc" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)puVar50 == 2) goto LAB_002561e8;" if (parenthesized_expression "(*(int *)puVar50 == 2)" ( (binary_expression "*(int *)puVar50 == 2" (pointer_expression "*(int *)puVar50" * (cast_expression "(int *)puVar50" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (goto_statement "goto LAB_002561e8;" goto statement_identifier ;)) }))) (expression_statement "puVar8 = (ushort *)&uStack_5150;" (assignment_expression "puVar8 = (ushort *)&uStack_5150" identifier = (cast_expression "(ushort *)&uStack_5150" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_5150" & identifier))) ;) (expression_statement "iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);" (assignment_expression "iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38)" identifier = (call_expression "(*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "(puVar50,auStack_4144,0,puVar8,puVar38)" ( identifier , identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }" if (parenthesized_expression "(iVar46 == 0)" ( (binary_expression "iVar46 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }" { (expression_statement "puVar8 = (ushort *)0x605;" (assignment_expression "puVar8 = (ushort *)0x605" identifier = (cast_expression "(ushort *)0x605" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);" (call_expression "(**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0)" (parenthesized_expression "(**(code **)(puVar54 + 0x15395c))" ( (pointer_expression "**(code **)(puVar54 + 0x15395c)" * (pointer_expression "*(code **)(puVar54 + 0x15395c)" * (cast_expression "(code **)(puVar54 + 0x15395c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x15395c)" ( (binary_expression "puVar54 + 0x15395c" identifier + number_literal) ))))) )) (argument_list "(puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0)" ( identifier , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7284" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7450" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x15331c) + 0x3e28" (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "puVar50 + 0x1a0" identifier + number_literal) ))) ;) (expression_statement "puVar38 = puVar50;" (assignment_expression "puVar38 = puVar50" identifier = identifier) ;) (if_statement "if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }" if (parenthesized_expression "(*(int *)(iVar10 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar10 + 0xc) == 0" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }" { (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1540c4);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1540c4)" identifier = (pointer_expression "*(code **)(puVar54 + 0x1540c4)" * (cast_expression "(code **)(puVar54 + 0x1540c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1540c4)" ( (binary_expression "puVar54 + 0x1540c4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }" else (compound_statement "{\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }" { (do_statement "do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);" do (compound_statement "{\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            }" { (expression_statement "puVar50 = puVar38;" (assignment_expression "puVar50 = puVar38" identifier = identifier) ;) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1540c4);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1540c4)" identifier = (pointer_expression "*(code **)(puVar54 + 0x1540c4)" * (cast_expression "(code **)(puVar54 + 0x1540c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1540c4)" ( (binary_expression "puVar54 + 0x1540c4" identifier + number_literal) ))))) ;) (expression_statement "puVar38 = *(ushort **)(puVar50 + 0x19b2);" (assignment_expression "puVar38 = *(ushort **)(puVar50 + 0x19b2)" identifier = (pointer_expression "*(ushort **)(puVar50 + 0x19b2)" * (cast_expression "(ushort **)(puVar50 + 0x19b2)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar50 + 0x19b2)" ( (binary_expression "puVar50 + 0x19b2" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0)" ( (binary_expression "*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0" (pointer_expression "*(ushort **)(puVar50 + 0x19b2)" * (cast_expression "(ushort **)(puVar50 + 0x19b2)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar50 + 0x19b2)" ( (binary_expression "puVar50 + 0x19b2" identifier + number_literal) )))) != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (goto_statement "goto LAB_00255ea8;" goto statement_identifier ;) })) (expression_statement "iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);" (assignment_expression "iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50)" identifier = (call_expression "(**(code **)(puVar54 + 0x153eac))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153eac))" ( (pointer_expression "**(code **)(puVar54 + 0x153eac)" * (pointer_expression "*(code **)(puVar54 + 0x153eac)" * (cast_expression "(code **)(puVar54 + 0x153eac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153eac)" ( (binary_expression "puVar54 + 0x153eac" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier )))) ;) (if_statement "if (iVar24 == 0) break;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);" (assignment_expression "puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50)" identifier = (cast_expression "(ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar54 + 0x153e44))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153e44))" ( (pointer_expression "**(code **)(puVar54 + 0x153e44)" * (pointer_expression "*(code **)(puVar54 + 0x153e44)" * (cast_expression "(code **)(puVar54 + 0x153e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153e44)" ( (binary_expression "puVar54 + 0x153e44" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))))) ;) (if_statement "if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }" if (parenthesized_expression "(*(code **)(puVar50 + 0x194) != (code *)0x0)" ( (binary_expression "*(code **)(puVar50 + 0x194) != (code *)0x0" (pointer_expression "*(code **)(puVar50 + 0x194)" * (cast_expression "(code **)(puVar50 + 0x194)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar50 + 0x194)" ( (binary_expression "puVar50 + 0x194" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }" { (expression_statement "puVar8 = puStack_5188;" (assignment_expression "puVar8 = puStack_5188" identifier = identifier) ;) (expression_statement "iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);" (assignment_expression "iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150)" identifier = (call_expression "(**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150)" (parenthesized_expression "(**(code **)(puVar50 + 0x194))" ( (pointer_expression "**(code **)(puVar50 + 0x194)" * (pointer_expression "*(code **)(puVar50 + 0x194)" * (cast_expression "(code **)(puVar50 + 0x194)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar50 + 0x194)" ( (binary_expression "puVar50 + 0x194" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x153328) + -0x150)" ( (binary_expression "*(int *)(puVar54 + 0x153328) + -0x150" (pointer_expression "*(int *)(puVar54 + 0x153328)" * (cast_expression "(int *)(puVar54 + 0x153328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153328)" ( (binary_expression "puVar54 + 0x153328" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar46 == 0) break;" if (parenthesized_expression "(iVar46 == 0)" ( (binary_expression "iVar46 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) })) (expression_statement "puStack_5188 = (ushort *)((int)puStack_5188 + 1);" (assignment_expression "puStack_5188 = (ushort *)((int)puStack_5188 + 1)" identifier = (cast_expression "(ushort *)((int)puStack_5188 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_5188 + 1)" ( (binary_expression "(int)puStack_5188 + 1" (cast_expression "(int)puStack_5188" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(*(int *)(iVar10 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar10 + 0xc) != 0" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) != number_literal) )) ;) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1540c4);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1540c4)" identifier = (pointer_expression "*(code **)(puVar54 + 0x1540c4)" * (cast_expression "(code **)(puVar54 + 0x1540c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1540c4)" ( (binary_expression "puVar54 + 0x1540c4" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00255ea8:\n      (*pcVar55)(puVar50);" statement_identifier : (expression_statement "(*pcVar55)(puVar50);" (call_expression "(*pcVar55)(puVar50)" (parenthesized_expression "(*pcVar55)" ( (pointer_expression "*pcVar55" * identifier) )) (argument_list "(puVar50)" ( identifier ))) ;)) }))) (if_statement "if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }" if (parenthesized_expression "(iStack_3144 == *piVar18)" ( (binary_expression "iStack_3144 == *piVar18" identifier == (pointer_expression "*piVar18" * identifier)) )) (compound_statement "{\n      return iVar46;\n    }" { (return_statement "return iVar46;" return identifier ;) })) (expression_statement "(**(code **)(puVar54 + 0x153aa0))();" (call_expression "(**(code **)(puVar54 + 0x153aa0))()" (parenthesized_expression "(**(code **)(puVar54 + 0x153aa0))" ( (pointer_expression "**(code **)(puVar54 + 0x153aa0)" * (pointer_expression "*(code **)(puVar54 + 0x153aa0)" * (cast_expression "(code **)(puVar54 + 0x153aa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153aa0)" ( (binary_expression "puVar54 + 0x153aa0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a)" identifier = (call_expression "(**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" ( (pointer_expression "**(code **)(puVar54 + 0x154044)" * (pointer_expression "*(code **)(puVar54 + 0x154044)" * (cast_expression "(code **)(puVar54 + 0x154044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x154044)" ( (binary_expression "puVar54 + 0x154044" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a)" ( (binary_expression "*(int *)(puVar54 + 0x15331c) + 0xdd0" (pointer_expression "*(int *)(puVar54 + 0x15331c)" * (cast_expression "(int *)(puVar54 + 0x15331c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x15331c)" ( (binary_expression "puVar54 + 0x15331c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" * (cast_expression "(int *)(puVar54 + 0x153388)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar54 + 0x153388)" ( (binary_expression "puVar54 + 0x153388" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "puVar8 + -0x393a" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) (labeled_statement "LAB_00255f3c:\n  do {\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  } while (pbVar25 != pbVar53);" statement_identifier : (do_statement "do {\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  } while (pbVar25 != pbVar53);" do (compound_statement "{\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  }" { (if_statement "if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }" if (parenthesized_expression "(*pbVar25 == 0x7d)" ( (binary_expression "*pbVar25 == 0x7d" (pointer_expression "*pbVar25" * identifier) == number_literal) )) (compound_statement "{\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }" { (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0x5c)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,0x5c)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,*pbVar25)" ( identifier , (pointer_expression "*pbVar25" * identifier) ))) ;) }) (else_clause "else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }" else (compound_statement "{\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }" { (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,*pbVar25)" ( identifier , (pointer_expression "*pbVar25" * identifier) ))) ;) }))) (expression_statement "pbVar25 = pbVar25 + 1;" (assignment_expression "pbVar25 = pbVar25 + 1" identifier = (binary_expression "pbVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar25 != pbVar53)" ( (binary_expression "pbVar25 != pbVar53" identifier != identifier) )) ;)) (labeled_statement "LAB_00255f78:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);" statement_identifier : (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7d)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,0x7d)" ( identifier , number_literal ))) ;)) (labeled_statement "LAB_00255d60:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,10);" statement_identifier : (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,10);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,10)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" ( (pointer_expression "**(code **)(puVar54 + 0x153a18)" * (pointer_expression "*(code **)(puVar54 + 0x153a18)" * (cast_expression "(code **)(puVar54 + 0x153a18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x153a18)" ( (binary_expression "puVar54 + 0x153a18" identifier + number_literal) ))))) )) (argument_list "(puVar50,10)" ( identifier , number_literal ))) ;)) (expression_statement "puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);" (assignment_expression "puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50)" identifier = (cast_expression "(ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar54 + 0x1542fc))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1542fc))" ( (pointer_expression "**(code **)(puVar54 + 0x1542fc)" * (pointer_expression "*(code **)(puVar54 + 0x1542fc)" * (cast_expression "(code **)(puVar54 + 0x1542fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar54 + 0x1542fc)" ( (binary_expression "puVar54 + 0x1542fc" identifier + number_literal) ))))) )) (argument_list "(puVar50)" ( identifier ))))) ;) (if_statement "if (puVar9 == (ushort *)0x0) goto LAB_00255d8c;" if (parenthesized_expression "(puVar9 == (ushort *)0x0)" ( (binary_expression "puVar9 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00255d8c;" goto statement_identifier ;)) (goto_statement "goto LAB_00255c90;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , 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 ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (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 ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )))) )) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression 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 *)) ) IDENT)) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = IDENT) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) - LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (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 , IDENT , IDENT , IDENT ))) ;) }))))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) || (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) ))) )) ))) )) || (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + (binary_expression IDENT * LIT))) )) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT / IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT / IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT / IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != (binary_expression IDENT + (binary_expression IDENT * LIT))) )) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (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 = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) * IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * IDENT) * IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) ))) != IDENT) )) ;) })) }))))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) - LIT) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (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 , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) & LIT) )) != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (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) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (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) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_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 ( IDENT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (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 IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (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 , LIT , IDENT ))) ;) })) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 ( LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , IDENT , IDENT , 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 , 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 , LIT , (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 ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (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 ( 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) )) (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 )))) ;) (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 , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT , IDENT , 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 , 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 ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT )))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , 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 , IDENT ))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (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 ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , 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 , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) 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 ( IDENT , IDENT ))) ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (call_expression IDENT (argument_list ( 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 ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) })) (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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) })) (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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (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 , 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , 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 , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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) )) (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 )))) ;) (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 , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (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) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (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 , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT , 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 , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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) ))))) ;) (do_statement do (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 , IDENT )))) ;) (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 ( IDENT , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 ( IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) })) (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 ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = 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 , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) * LIT)) )))) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + 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 , 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 , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != 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 , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , 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 , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (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 ( 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) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * LIT) ))) >> LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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 = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT - IDENT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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 = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT - IDENT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT - IDENT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - (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 ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - (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 ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (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 ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (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) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) }))) })) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) }))) })) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) }))) }))))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < 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 IDENT * IDENT) , 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 ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (while_statement while (parenthesized_expression ( BOOL )) (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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) ))) ;) (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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (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)) )) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 = 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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (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 ( ))) ;) })) (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) )))) ;) (return_statement return IDENT ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_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 ( 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 ( IDENT , (pointer_expression * IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != 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 ( 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 ( IDENT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "int FUN_0025375c(ushort *param_1,ushort *param_2)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  undefined8 uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  ushort *puVar8;\n  ushort *puVar9;\n  int iVar10;\n  ushort *puVar11;\n  int iVar12;\n  uint uVar13;\n  ushort *puVar14;\n  double *pdVar15;\n  ushort *puVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 uVar23;\n  int iVar24;\n  byte *pbVar25;\n  int *piVar26;\n  undefined1 *puVar27;\n  undefined1 *puVar28;\n  undefined1 *puVar29;\n  int iVar30;\n  int iVar31;\n  int iVar32;\n  ushort *puVar33;\n  int iVar34;\n  undefined *puVar35;\n  undefined1 uVar37;\n  uint uVar36;\n  ushort *puVar38;\n  int iVar39;\n  int iVar40;\n  int iVar41;\n  int iVar42;\n  int iVar43;\n  undefined1 uVar44;\n  undefined1 uVar45;\n  int iVar46;\n  int iVar47;\n  undefined4 uVar48;\n  int iVar49;\n  undefined4 unaff_s3;\n  ushort *unaff_s4;\n  ushort *puVar50;\n  ushort *unaff_s5;\n  int iVar51;\n  undefined1 uVar52;\n  ushort *unaff_s6;\n  ushort *unaff_s7;\n  byte *pbVar53;\n  undefined *puVar54;\n  ushort *unaff_s8;\n  code *pcVar55;\n  double dVar56;\n  double dVar57;\n  float fVar59;\n  double dVar58;\n  undefined2 uVar60;\n  double dVar61;\n  float fVar62;\n  double dVar63;\n  double dVar64;\n  double in_f20_21;\n  double dVar65;\n  double in_f22_23;\n  double in_f24_25;\n  double dVar66;\n  double dVar67;\n  double dVar68;\n  undefined8 uVar69;\n  ushort *puStack_5188;\n  undefined4 uStack_5150;\n  undefined4 uStack_514c;\n  undefined1 auStack_5144 [4096];\n  undefined1 auStack_4144 [4096];\n  int iStack_3144;\n  ushort *puStack_3140;\n  ushort *puStack_313c;\n  undefined8 uStack_3138;\n  ushort *puStack_3130;\n  ushort *puStack_312c;\n  ushort *puStack_3128;\n  ushort *puStack_3124;\n  ushort *puStack_3120;\n  code *pcStack_311c;\n  double dStack_3118;\n  double dStack_3110;\n  double dStack_3108;\n  undefined8 local_30d8;\n  undefined *local_30d0;\n  ushort *local_30cc;\n  ushort *local_30c8;\n  int local_309c;\n  undefined4 local_3078;\n  undefined4 local_3074;\n  ushort local_3070 [22];\n  ushort auStack_3044 [2048];\n  undefined1 local_2044 [4096];\n  ushort local_1044 [2048];\n  int local_44;\n  \n  puVar54 = PTR___stack_chk_guard_003a9230;\n  uVar69 = CONCAT44(param_2,unaff_s3);\n  local_44 = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x190a) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x1908) != 0) {\n    local_30d8._4_4_ = param_1 + 0x1108;\n    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }\n  if (param_2 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_2 + 0xe) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2);\n  puVar38 = (ushort *)0x2;\n  puVar50 = puVar8;\n  local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2);\n  if (local_309c == 0) {\n    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n    iVar10 = 0;\n  }\n  else {\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }\nLAB_002546dc:\n  if (local_44 == *(int *)puVar54) {\n    return iVar10;\n  }\n  pcVar55 = FUN_002555c4;\n  iVar10 = local_44;\n  puVar54 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  piVar18 = *(int **)(puVar54 + 0x153c6c);\n  iStack_3144 = *piVar18;\n  puStack_3140 = puVar8;\n  puStack_313c = param_1;\n  puStack_3130 = unaff_s4;\n  puStack_312c = unaff_s5;\n  puStack_3128 = unaff_s6;\n  puStack_3124 = unaff_s7;\n  puStack_3120 = unaff_s8;\n  pcStack_311c = pcVar55;\n  dStack_3118 = in_f20_21;\n  dStack_3110 = in_f22_23;\n  dStack_3108 = in_f24_25;\n  uStack_3138 = uVar69;\n  if (iVar10 == 0) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);\n    return iVar10;\n  }\n  puVar8 = *(ushort **)(puVar54 + 0x153388);\n  if (*(int *)(iVar10 + 0x3214) != -0x54535255) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);\n    return iVar10;\n  }\n  if (puVar50 != (ushort *)0x0) {\n    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }\n    if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }\n    if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    puVar8 = puVar38;\n    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);\n    if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }\n    if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }\n    (**(code **)(puVar54 + 0x153aa0))();\n  }\n  iVar10 = (**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a);\n  return iVar10;\nLAB_00255f3c:\n  do {\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  } while (pbVar25 != pbVar53);\nLAB_00255f78:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\nLAB_00255d60:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,10);\n  puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n  if (puVar9 == (ushort *)0x0) goto LAB_00255d8c;\n  goto LAB_00255c90;\n}" (primitive_type "int") (function_declarator "FUN_0025375c(ushort *param_1,ushort *param_2)" (identifier "FUN_0025375c") (parameter_list "(ushort *param_1,ushort *param_2)" (( "(") (parameter_declaration "ushort *param_1" (type_identifier "ushort") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "ushort *param_2" (type_identifier "ushort") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  ushort uVar2;\n  undefined8 uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  ushort *puVar8;\n  ushort *puVar9;\n  int iVar10;\n  ushort *puVar11;\n  int iVar12;\n  uint uVar13;\n  ushort *puVar14;\n  double *pdVar15;\n  ushort *puVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 uVar23;\n  int iVar24;\n  byte *pbVar25;\n  int *piVar26;\n  undefined1 *puVar27;\n  undefined1 *puVar28;\n  undefined1 *puVar29;\n  int iVar30;\n  int iVar31;\n  int iVar32;\n  ushort *puVar33;\n  int iVar34;\n  undefined *puVar35;\n  undefined1 uVar37;\n  uint uVar36;\n  ushort *puVar38;\n  int iVar39;\n  int iVar40;\n  int iVar41;\n  int iVar42;\n  int iVar43;\n  undefined1 uVar44;\n  undefined1 uVar45;\n  int iVar46;\n  int iVar47;\n  undefined4 uVar48;\n  int iVar49;\n  undefined4 unaff_s3;\n  ushort *unaff_s4;\n  ushort *puVar50;\n  ushort *unaff_s5;\n  int iVar51;\n  undefined1 uVar52;\n  ushort *unaff_s6;\n  ushort *unaff_s7;\n  byte *pbVar53;\n  undefined *puVar54;\n  ushort *unaff_s8;\n  code *pcVar55;\n  double dVar56;\n  double dVar57;\n  float fVar59;\n  double dVar58;\n  undefined2 uVar60;\n  double dVar61;\n  float fVar62;\n  double dVar63;\n  double dVar64;\n  double in_f20_21;\n  double dVar65;\n  double in_f22_23;\n  double in_f24_25;\n  double dVar66;\n  double dVar67;\n  double dVar68;\n  undefined8 uVar69;\n  ushort *puStack_5188;\n  undefined4 uStack_5150;\n  undefined4 uStack_514c;\n  undefined1 auStack_5144 [4096];\n  undefined1 auStack_4144 [4096];\n  int iStack_3144;\n  ushort *puStack_3140;\n  ushort *puStack_313c;\n  undefined8 uStack_3138;\n  ushort *puStack_3130;\n  ushort *puStack_312c;\n  ushort *puStack_3128;\n  ushort *puStack_3124;\n  ushort *puStack_3120;\n  code *pcStack_311c;\n  double dStack_3118;\n  double dStack_3110;\n  double dStack_3108;\n  undefined8 local_30d8;\n  undefined *local_30d0;\n  ushort *local_30cc;\n  ushort *local_30c8;\n  int local_309c;\n  undefined4 local_3078;\n  undefined4 local_3074;\n  ushort local_3070 [22];\n  ushort auStack_3044 [2048];\n  undefined1 local_2044 [4096];\n  ushort local_1044 [2048];\n  int local_44;\n  \n  puVar54 = PTR___stack_chk_guard_003a9230;\n  uVar69 = CONCAT44(param_2,unaff_s3);\n  local_44 = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x190a) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_1 + 0x1908) != 0) {\n    local_30d8._4_4_ = param_1 + 0x1108;\n    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }\n  if (param_2 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  if (*(int *)(param_2 + 0xe) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }\n  puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2);\n  puVar38 = (ushort *)0x2;\n  puVar50 = puVar8;\n  local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2);\n  if (local_309c == 0) {\n    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n    iVar10 = 0;\n  }\n  else {\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }\nLAB_002546dc:\n  if (local_44 == *(int *)puVar54) {\n    return iVar10;\n  }\n  pcVar55 = FUN_002555c4;\n  iVar10 = local_44;\n  puVar54 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  piVar18 = *(int **)(puVar54 + 0x153c6c);\n  iStack_3144 = *piVar18;\n  puStack_3140 = puVar8;\n  puStack_313c = param_1;\n  puStack_3130 = unaff_s4;\n  puStack_312c = unaff_s5;\n  puStack_3128 = unaff_s6;\n  puStack_3124 = unaff_s7;\n  puStack_3120 = unaff_s8;\n  pcStack_311c = pcVar55;\n  dStack_3118 = in_f20_21;\n  dStack_3110 = in_f22_23;\n  dStack_3108 = in_f24_25;\n  uStack_3138 = uVar69;\n  if (iVar10 == 0) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);\n    return iVar10;\n  }\n  puVar8 = *(ushort **)(puVar54 + 0x153388);\n  if (*(int *)(iVar10 + 0x3214) != -0x54535255) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);\n    return iVar10;\n  }\n  if (puVar50 != (ushort *)0x0) {\n    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }\n    if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }\n    if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    puVar8 = puVar38;\n    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);\n    if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }\n    if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }\n    (**(code **)(puVar54 + 0x153aa0))();\n  }\n  iVar10 = (**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a);\n  return iVar10;\nLAB_00255f3c:\n  do {\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  } while (pbVar25 != pbVar53);\nLAB_00255f78:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\nLAB_00255d60:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,10);\n  puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n  if (puVar9 == (ushort *)0x0) goto LAB_00255d8c;\n  goto LAB_00255c90;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "ushort uVar2;" (type_identifier "ushort") (identifier "uVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "ushort *puVar8;" (type_identifier "ushort") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "ushort *puVar9;" (type_identifier "ushort") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "ushort *puVar11;" (type_identifier "ushort") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "ushort *puVar14;" (type_identifier "ushort") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "double *pdVar15;" (primitive_type "double") (pointer_declarator "*pdVar15" (* "*") (identifier "pdVar15")) (; ";")) (declaration "ushort *puVar16;" (type_identifier "ushort") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "int *piVar18;" (primitive_type "int") (pointer_declarator "*piVar18" (* "*") (identifier "piVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "undefined4 uVar23;" (type_identifier "undefined4") (identifier "uVar23") (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "byte *pbVar25;" (type_identifier "byte") (pointer_declarator "*pbVar25" (* "*") (identifier "pbVar25")) (; ";")) (declaration "int *piVar26;" (primitive_type "int") (pointer_declarator "*piVar26" (* "*") (identifier "piVar26")) (; ";")) (declaration "undefined1 *puVar27;" (type_identifier "undefined1") (pointer_declarator "*puVar27" (* "*") (identifier "puVar27")) (; ";")) (declaration "undefined1 *puVar28;" (type_identifier "undefined1") (pointer_declarator "*puVar28" (* "*") (identifier "puVar28")) (; ";")) (declaration "undefined1 *puVar29;" (type_identifier "undefined1") (pointer_declarator "*puVar29" (* "*") (identifier "puVar29")) (; ";")) (declaration "int iVar30;" (primitive_type "int") (identifier "iVar30") (; ";")) (declaration "int iVar31;" (primitive_type "int") (identifier "iVar31") (; ";")) (declaration "int iVar32;" (primitive_type "int") (identifier "iVar32") (; ";")) (declaration "ushort *puVar33;" (type_identifier "ushort") (pointer_declarator "*puVar33" (* "*") (identifier "puVar33")) (; ";")) (declaration "int iVar34;" (primitive_type "int") (identifier "iVar34") (; ";")) (declaration "undefined *puVar35;" (type_identifier "undefined") (pointer_declarator "*puVar35" (* "*") (identifier "puVar35")) (; ";")) (declaration "undefined1 uVar37;" (type_identifier "undefined1") (identifier "uVar37") (; ";")) (declaration "uint uVar36;" (type_identifier "uint") (identifier "uVar36") (; ";")) (declaration "ushort *puVar38;" (type_identifier "ushort") (pointer_declarator "*puVar38" (* "*") (identifier "puVar38")) (; ";")) (declaration "int iVar39;" (primitive_type "int") (identifier "iVar39") (; ";")) (declaration "int iVar40;" (primitive_type "int") (identifier "iVar40") (; ";")) (declaration "int iVar41;" (primitive_type "int") (identifier "iVar41") (; ";")) (declaration "int iVar42;" (primitive_type "int") (identifier "iVar42") (; ";")) (declaration "int iVar43;" (primitive_type "int") (identifier "iVar43") (; ";")) (declaration "undefined1 uVar44;" (type_identifier "undefined1") (identifier "uVar44") (; ";")) (declaration "undefined1 uVar45;" (type_identifier "undefined1") (identifier "uVar45") (; ";")) (declaration "int iVar46;" (primitive_type "int") (identifier "iVar46") (; ";")) (declaration "int iVar47;" (primitive_type "int") (identifier "iVar47") (; ";")) (declaration "undefined4 uVar48;" (type_identifier "undefined4") (identifier "uVar48") (; ";")) (declaration "int iVar49;" (primitive_type "int") (identifier "iVar49") (; ";")) (declaration "undefined4 unaff_s3;" (type_identifier "undefined4") (identifier "unaff_s3") (; ";")) (declaration "ushort *unaff_s4;" (type_identifier "ushort") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "ushort *puVar50;" (type_identifier "ushort") (pointer_declarator "*puVar50" (* "*") (identifier "puVar50")) (; ";")) (declaration "ushort *unaff_s5;" (type_identifier "ushort") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "int iVar51;" (primitive_type "int") (identifier "iVar51") (; ";")) (declaration "undefined1 uVar52;" (type_identifier "undefined1") (identifier "uVar52") (; ";")) (declaration "ushort *unaff_s6;" (type_identifier "ushort") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "ushort *unaff_s7;" (type_identifier "ushort") (pointer_declarator "*unaff_s7" (* "*") (identifier "unaff_s7")) (; ";")) (declaration "byte *pbVar53;" (type_identifier "byte") (pointer_declarator "*pbVar53" (* "*") (identifier "pbVar53")) (; ";")) (declaration "undefined *puVar54;" (type_identifier "undefined") (pointer_declarator "*puVar54" (* "*") (identifier "puVar54")) (; ";")) (declaration "ushort *unaff_s8;" (type_identifier "ushort") (pointer_declarator "*unaff_s8" (* "*") (identifier "unaff_s8")) (; ";")) (declaration "code *pcVar55;" (type_identifier "code") (pointer_declarator "*pcVar55" (* "*") (identifier "pcVar55")) (; ";")) (declaration "double dVar56;" (primitive_type "double") (identifier "dVar56") (; ";")) (declaration "double dVar57;" (primitive_type "double") (identifier "dVar57") (; ";")) (declaration "float fVar59;" (primitive_type "float") (identifier "fVar59") (; ";")) (declaration "double dVar58;" (primitive_type "double") (identifier "dVar58") (; ";")) (declaration "undefined2 uVar60;" (type_identifier "undefined2") (identifier "uVar60") (; ";")) (declaration "double dVar61;" (primitive_type "double") (identifier "dVar61") (; ";")) (declaration "float fVar62;" (primitive_type "float") (identifier "fVar62") (; ";")) (declaration "double dVar63;" (primitive_type "double") (identifier "dVar63") (; ";")) (declaration "double dVar64;" (primitive_type "double") (identifier "dVar64") (; ";")) (declaration "double in_f20_21;" (primitive_type "double") (identifier "in_f20_21") (; ";")) (declaration "double dVar65;" (primitive_type "double") (identifier "dVar65") (; ";")) (declaration "double in_f22_23;" (primitive_type "double") (identifier "in_f22_23") (; ";")) (declaration "double in_f24_25;" (primitive_type "double") (identifier "in_f24_25") (; ";")) (declaration "double dVar66;" (primitive_type "double") (identifier "dVar66") (; ";")) (declaration "double dVar67;" (primitive_type "double") (identifier "dVar67") (; ";")) (declaration "double dVar68;" (primitive_type "double") (identifier "dVar68") (; ";")) (declaration "undefined8 uVar69;" (type_identifier "undefined8") (identifier "uVar69") (; ";")) (declaration "ushort *puStack_5188;" (type_identifier "ushort") (pointer_declarator "*puStack_5188" (* "*") (identifier "puStack_5188")) (; ";")) (declaration "undefined4 uStack_5150;" (type_identifier "undefined4") (identifier "uStack_5150") (; ";")) (declaration "undefined4 uStack_514c;" (type_identifier "undefined4") (identifier "uStack_514c") (; ";")) (declaration "undefined1 auStack_5144 [4096];" (type_identifier "undefined1") (array_declarator "auStack_5144 [4096]" (identifier "auStack_5144") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "undefined1 auStack_4144 [4096];" (type_identifier "undefined1") (array_declarator "auStack_4144 [4096]" (identifier "auStack_4144") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "int iStack_3144;" (primitive_type "int") (identifier "iStack_3144") (; ";")) (declaration "ushort *puStack_3140;" (type_identifier "ushort") (pointer_declarator "*puStack_3140" (* "*") (identifier "puStack_3140")) (; ";")) (declaration "ushort *puStack_313c;" (type_identifier "ushort") (pointer_declarator "*puStack_313c" (* "*") (identifier "puStack_313c")) (; ";")) (declaration "undefined8 uStack_3138;" (type_identifier "undefined8") (identifier "uStack_3138") (; ";")) (declaration "ushort *puStack_3130;" (type_identifier "ushort") (pointer_declarator "*puStack_3130" (* "*") (identifier "puStack_3130")) (; ";")) (declaration "ushort *puStack_312c;" (type_identifier "ushort") (pointer_declarator "*puStack_312c" (* "*") (identifier "puStack_312c")) (; ";")) (declaration "ushort *puStack_3128;" (type_identifier "ushort") (pointer_declarator "*puStack_3128" (* "*") (identifier "puStack_3128")) (; ";")) (declaration "ushort *puStack_3124;" (type_identifier "ushort") (pointer_declarator "*puStack_3124" (* "*") (identifier "puStack_3124")) (; ";")) (declaration "ushort *puStack_3120;" (type_identifier "ushort") (pointer_declarator "*puStack_3120" (* "*") (identifier "puStack_3120")) (; ";")) (declaration "code *pcStack_311c;" (type_identifier "code") (pointer_declarator "*pcStack_311c" (* "*") (identifier "pcStack_311c")) (; ";")) (declaration "double dStack_3118;" (primitive_type "double") (identifier "dStack_3118") (; ";")) (declaration "double dStack_3110;" (primitive_type "double") (identifier "dStack_3110") (; ";")) (declaration "double dStack_3108;" (primitive_type "double") (identifier "dStack_3108") (; ";")) (declaration "undefined8 local_30d8;" (type_identifier "undefined8") (identifier "local_30d8") (; ";")) (declaration "undefined *local_30d0;" (type_identifier "undefined") (pointer_declarator "*local_30d0" (* "*") (identifier "local_30d0")) (; ";")) (declaration "ushort *local_30cc;" (type_identifier "ushort") (pointer_declarator "*local_30cc" (* "*") (identifier "local_30cc")) (; ";")) (declaration "ushort *local_30c8;" (type_identifier "ushort") (pointer_declarator "*local_30c8" (* "*") (identifier "local_30c8")) (; ";")) (declaration "int local_309c;" (primitive_type "int") (identifier "local_309c") (; ";")) (declaration "undefined4 local_3078;" (type_identifier "undefined4") (identifier "local_3078") (; ";")) (declaration "undefined4 local_3074;" (type_identifier "undefined4") (identifier "local_3074") (; ";")) (declaration "ushort local_3070 [22];" (type_identifier "ushort") (array_declarator "local_3070 [22]" (identifier "local_3070") ([ "[") (number_literal "22") (] "]")) (; ";")) (declaration "ushort auStack_3044 [2048];" (type_identifier "ushort") (array_declarator "auStack_3044 [2048]" (identifier "auStack_3044") ([ "[") (number_literal "2048") (] "]")) (; ";")) (declaration "undefined1 local_2044 [4096];" (type_identifier "undefined1") (array_declarator "local_2044 [4096]" (identifier "local_2044") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "ushort local_1044 [2048];" (type_identifier "ushort") (array_declarator "local_1044 [2048]" (identifier "local_1044") ([ "[") (number_literal "2048") (] "]")) (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (expression_statement "puVar54 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar54 = PTR___stack_chk_guard_003a9230" (identifier "puVar54") (= "=") (identifier "PTR___stack_chk_guard_003a9230")) (; ";")) (expression_statement "uVar69 = CONCAT44(param_2,unaff_s3);" (assignment_expression "uVar69 = CONCAT44(param_2,unaff_s3)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(param_2,unaff_s3)" (identifier "CONCAT44") (argument_list "(param_2,unaff_s3)" (( "(") (identifier "param_2") (, ",") (identifier "unaff_s3") () ")")))) (; ";")) (expression_statement "local_44 = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_44 = *(int *)PTR___stack_chk_guard_003a9230" (identifier "local_44") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_003a9230" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_003a9230")))) (; ";")) (if_statement "if (param_1 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" (if "if") (parenthesized_expression "(param_1 == (ushort *)0x0)" (( "(") (binary_expression "param_1 == (ushort *)0x0" (identifier "param_1") (== "==") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" ({ "{") (expression_statement "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_LAB_003a88e0 + 0xd78,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0xd78" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0xd78")) (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) (, ",") (number_literal "0xc2") (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x7294")) () ")")))) (; ";")) (return_statement "return iVar10;" (return "return") (identifier "iVar10") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x190a) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x190a) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_1 + 0x190a) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x190a)" (* "*") (cast_expression "(int *)(param_1 + 0x190a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x190a)" (( "(") (binary_expression "param_1 + 0x190a" (identifier "param_1") (+ "+") (number_literal "0x190a")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" ({ "{") (expression_statement "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_LAB_003a88e0 + 0xda0,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0xda0" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0xda0")) (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) (, ",") (number_literal "0xc3") (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x7294")) () ")")))) (; ";")) (return_statement "return iVar10;" (return "return") (identifier "iVar10") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x1908) != 0) {\n    local_30d8._4_4_ = param_1 + 0x1108;\n    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1908) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1908) != 0" (pointer_expression "*(int *)(param_1 + 0x1908)" (* "*") (cast_expression "(int *)(param_1 + 0x1908)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1908)" (( "(") (binary_expression "param_1 + 0x1908" (identifier "param_1") (+ "+") (number_literal "0x1908")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_30d8._4_4_ = param_1 + 0x1108;\n    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);\n  }" ({ "{") (expression_statement "local_30d8._4_4_ = param_1 + 0x1108;" (assignment_expression "local_30d8._4_4_ = param_1 + 0x1108" (field_expression "local_30d8._4_4_" (identifier "local_30d8") (. ".") (field_identifier "_4_4_")) (= "=") (binary_expression "param_1 + 0x1108" (identifier "param_1") (+ "+") (number_literal "0x1108"))) (; ";")) (expression_statement "local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);" (assignment_expression "local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac)" (field_expression "local_30d8._0_4_" (identifier "local_30d8") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x62ac)" (( "(") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x62ac" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x62ac")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" (( "(") (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" (* "*") (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_LogMagickEvent_003a91e0"))) () ")")) (argument_list "(0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,\n               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x72a4")) (, ",") (number_literal "0xc5") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == (ushort *)0x0) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" (if "if") (parenthesized_expression "(param_2 == (ushort *)0x0)" (( "(") (binary_expression "param_2 == (ushort *)0x0" (identifier "param_2") (== "==") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" ({ "{") (expression_statement "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_LAB_003a88e0 + 0x1cac,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1cac" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1cac")) (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) (, ",") (number_literal "199") (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x7294")) () ")")))) (; ";")) (return_statement "return iVar10;" (return "return") (identifier "iVar10") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_2 + 0xe) != -0x54535255) {\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0xe) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_2 + 0xe) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0xe)" (* "*") (cast_expression "(int *)(param_2 + 0xe)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xe)" (( "(") (binary_expression "param_2 + 0xe" (identifier "param_2") (+ "+") (number_literal "0xe")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);\n    return iVar10;\n  }" ({ "{") (expression_statement "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);" (assignment_expression "iVar10 = (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_LAB_003a88e0 + 0x294c,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,\n                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x294c" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x294c")) (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) (, ",") (number_literal "200") (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x7294")) () ")")))) (; ";")) (return_statement "return iVar10;" (return "return") (identifier "iVar10") (; ";")) (} "}"))) (expression_statement "puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2);" (assignment_expression "puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2)" (identifier "puVar8") (= "=") (cast_expression "(ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2)" (parenthesized_expression "(*(code *)PTR_AcquireImage_003a960c)" (( "(") (pointer_expression "*(code *)PTR_AcquireImage_003a960c" (* "*") (cast_expression "(code *)PTR_AcquireImage_003a960c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireImage_003a960c"))) () ")")) (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "puVar38 = (ushort *)0x2;" (assignment_expression "puVar38 = (ushort *)0x2" (identifier "puVar38") (= "=") (cast_expression "(ushort *)0x2" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "puVar50 = puVar8;" (assignment_expression "puVar50 = puVar8" (identifier "puVar50") (= "=") (identifier "puVar8")) (; ";")) (expression_statement "local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2);" (assignment_expression "local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2)" (identifier "local_309c") (= "=") (call_expression "(*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2)" (parenthesized_expression "(*(code *)PTR_OpenBlob_003a924c)" (( "(") (pointer_expression "*(code *)PTR_OpenBlob_003a924c" (* "*") (cast_expression "(code *)PTR_OpenBlob_003a924c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_OpenBlob_003a924c"))) () ")")) (argument_list "(param_1,puVar8,2,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "puVar8") (, ",") (number_literal "2") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (local_309c == 0) {\n    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n    iVar10 = 0;\n  }\n  else {\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }" (if "if") (parenthesized_expression "(local_309c == 0)" (( "(") (binary_expression "local_309c == 0" (identifier "local_309c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n    iVar10 = 0;\n  }" ({ "{") (expression_statement "(*(code *)PTR_DestroyImageList_003a9510)(puVar8);" (call_expression "(*(code *)PTR_DestroyImageList_003a9510)(puVar8)" (parenthesized_expression "(*(code *)PTR_DestroyImageList_003a9510)" (( "(") (pointer_expression "*(code *)PTR_DestroyImageList_003a9510" (* "*") (cast_expression "(code *)PTR_DestroyImageList_003a9510" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyImageList_003a9510"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }" (else "else") (compound_statement "{\n    puVar38 = (ushort *)0xffa;\n    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);\n    puVar50 = auStack_3044;\n    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);\n    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;\n    puVar4 = PTR_LAB_003a88e0;\n    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);\n    if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }\n  }" ({ "{") (expression_statement "puVar38 = (ushort *)0xffa;" (assignment_expression "puVar38 = (ushort *)0xffa" (identifier "puVar38") (= "=") (cast_expression "(ushort *)0xffa" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffa"))) (; ";")) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" (( "(") (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" (* "*") (cast_expression "(code *)PTR_CopyMagickString_003a983c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CopyMagickString_003a983c"))) () ")")) (argument_list "(auStack_3044,puVar8 + 0x1a0)" (( "(") (identifier "auStack_3044") (, ",") (binary_expression "puVar8 + 0x1a0" (identifier "puVar8") (+ "+") (number_literal "0x1a0")) () ")"))) (; ";")) (expression_statement "puVar50 = auStack_3044;" (assignment_expression "puVar50 = auStack_3044" (identifier "puVar50") (= "=") (identifier "auStack_3044")) (; ";")) (expression_statement "(*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);" (call_expression "(*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8)" (parenthesized_expression "(*(code *)PTR_AppendImageFormat_003a8fa8)" (( "(") (pointer_expression "*(code *)PTR_AppendImageFormat_003a8fa8" (* "*") (cast_expression "(code *)PTR_AppendImageFormat_003a8fa8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AppendImageFormat_003a8fa8"))) () ")")) (argument_list "(PTR_s_courses_003a88ec + -0x50b8)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0x50b8" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x50b8")) () ")"))) (; ";")) (expression_statement "unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (identifier "unaff_s8") (= "=") (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";")) (expression_statement "puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;" (assignment_expression "puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8" (identifier "puVar5") (= "=") (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8")) (; ";")) (expression_statement "puVar4 = PTR_LAB_003a88e0;" (assignment_expression "puVar4 = PTR_LAB_003a88e0" (identifier "puVar4") (= "=") (identifier "PTR_LAB_003a88e0")) (; ";")) (expression_statement "uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);" (assignment_expression "uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0)" (identifier "CONCAT44") (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0)" (( "(") (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (, ",") (identifier "PTR_LAB_003a88e0") () ")")))) (; ";")) (if_statement "if (unaff_s8 == (ushort *)0xffffffff) {\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }\n    else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }" (if "if") (parenthesized_expression "(unaff_s8 == (ushort *)0xffffffff)" (( "(") (binary_expression "unaff_s8 == (ushort *)0xffffffff" (identifier "unaff_s8") (== "==") (cast_expression "(ushort *)0xffffffff" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);\n      iVar10 = 0;\n      param_1 = auStack_3044;\n      uVar69 = CONCAT44(param_2,unaff_s3);\n    }" ({ "{") (expression_statement "(*(code *)PTR_DestroyImage_003a8f4c)(puVar8);" (call_expression "(*(code *)PTR_DestroyImage_003a8f4c)(puVar8)" (parenthesized_expression "(*(code *)PTR_DestroyImage_003a8f4c)" (( "(") (pointer_expression "*(code *)PTR_DestroyImage_003a8f4c" (* "*") (cast_expression "(code *)PTR_DestroyImage_003a8f4c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyImage_003a8f4c"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1 = auStack_3044;" (assignment_expression "param_1 = auStack_3044" (identifier "param_1") (= "=") (identifier "auStack_3044")) (; ";")) (expression_statement "uVar69 = CONCAT44(param_2,unaff_s3);" (assignment_expression "uVar69 = CONCAT44(param_2,unaff_s3)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(param_2,unaff_s3)" (identifier "CONCAT44") (argument_list "(param_2,unaff_s3)" (( "(") (identifier "param_2") (, ",") (identifier "unaff_s3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }" (else "else") (compound_statement "{\n      unaff_s5 = local_1044;\n      puVar38 = (ushort *)0x1000;\n      local_2044[0] = 0;\n      unaff_s4 = (ushort *)((int)unaff_s8 << 1);\n      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);\n      local_3074 = 0;\n      local_3078 = 0;\n      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();\n      in_f24_25 = *(double *)(puVar5 + -0x5b00);\n      in_f22_23 = *(double *)(puVar4 + 0x1418);\n      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      unaff_s7 = local_3070;\n      do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);\n      (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n      puVar11 = unaff_s8;\nLAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n      param_1 = puVar9;\n      unaff_s8 = puVar11;\n    }" ({ "{") (expression_statement "unaff_s5 = local_1044;" (assignment_expression "unaff_s5 = local_1044" (identifier "unaff_s5") (= "=") (identifier "local_1044")) (; ";")) (expression_statement "puVar38 = (ushort *)0x1000;" (assignment_expression "puVar38 = (ushort *)0x1000" (identifier "puVar38") (= "=") (cast_expression "(ushort *)0x1000" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1000"))) (; ";")) (expression_statement "local_2044[0] = 0;" (assignment_expression "local_2044[0] = 0" (subscript_expression "local_2044[0]" (identifier "local_2044") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s4 = (ushort *)((int)unaff_s8 << 1);" (assignment_expression "unaff_s4 = (ushort *)((int)unaff_s8 << 1)" (identifier "unaff_s4") (= "=") (cast_expression "(ushort *)((int)unaff_s8 << 1)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s8 << 1)" (( "(") (binary_expression "(int)unaff_s8 << 1" (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_memset_003a96d4)(unaff_s5,0);" (call_expression "(*(code *)PTR_memset_003a96d4)(unaff_s5,0)" (parenthesized_expression "(*(code *)PTR_memset_003a96d4)" (( "(") (pointer_expression "*(code *)PTR_memset_003a96d4" (* "*") (cast_expression "(code *)PTR_memset_003a96d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_003a96d4"))) () ")")) (argument_list "(unaff_s5,0)" (( "(") (identifier "unaff_s5") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_3074 = 0;" (assignment_expression "local_3074 = 0" (identifier "local_3074") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3078 = 0;" (assignment_expression "local_3078 = 0" (identifier "local_3078") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();" (assignment_expression "puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)()" (identifier "puVar9") (= "=") (cast_expression "(ushort *)(*(code *)PTR___ctype_b_loc_003a9434)()" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_003a9434)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_003a9434)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_003a9434" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_003a9434" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_003a9434"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "in_f24_25 = *(double *)(puVar5 + -0x5b00);" (assignment_expression "in_f24_25 = *(double *)(puVar5 + -0x5b00)" (identifier "in_f24_25") (= "=") (pointer_expression "*(double *)(puVar5 + -0x5b00)" (* "*") (cast_expression "(double *)(puVar5 + -0x5b00)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + -0x5b00)" (( "(") (binary_expression "puVar5 + -0x5b00" (identifier "puVar5") (+ "+") (number_literal "-0x5b00")) () ")"))))) (; ";")) (expression_statement "in_f22_23 = *(double *)(puVar4 + 0x1418);" (assignment_expression "in_f22_23 = *(double *)(puVar4 + 0x1418)" (identifier "in_f22_23") (= "=") (pointer_expression "*(double *)(puVar4 + 0x1418)" (* "*") (cast_expression "(double *)(puVar4 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 0x1418)" (( "(") (binary_expression "puVar4 + 0x1418" (identifier "puVar4") (+ "+") (number_literal "0x1418")) () ")"))))) (; ";")) (expression_statement "in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);" (assignment_expression "in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" (* "*") (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5af0")) () ")"))))) (; ";")) (expression_statement "unaff_s7 = local_3070;" (assignment_expression "unaff_s7 = local_3070" (identifier "unaff_s7") (= "=") (identifier "local_3070")) (; ";")) (do_statement "do {\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      } while (local_309c != 0);" (do "do") (compound_statement "{\n        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;\n        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);\n        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        iVar30 = *(int *)puVar9;\n        puVar8[0x10] = 0;\n        puVar8[0x11] = 8;\n        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);\n        puVar8[4] = 0;\n        puVar8[5] = 0x10;\n        uVar2 = *puVar50;\n        puVar11 = unaff_s8;\nLAB_0025399c:\n        unaff_s4 = puVar50;\n        if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }\n        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);\n        unaff_s8 = puVar11;\n        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }\n        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);\n        if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }\n        if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }\n        puVar50 = (ushort *)0x0;\n        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);\n        if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }\n        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);\n        uVar23 = (undefined4)uVar69;\n        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);\n        if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);\n        if (iVar10 == 0) goto LAB_002550a8;\n        puVar38 = (ushort *)0x1;\n        puVar50 = auStack_3044;\n        local_30d8._0_4_ = param_2;\n        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);\n        if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }\n        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);\n        if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }\n        uVar48 = 0xffffffff;\n        uVar69 = CONCAT44(0xffffffff,uVar23);\n        while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }\n        if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }\n        puVar50 = puVar8;\n        puVar38 = param_2;\n        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);\n        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);\n        if (iVar10 == 0) break;\n        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);\n        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);\n        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);\n        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);\n        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);\n      }" ({ "{") (expression_statement "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;" (assignment_expression "puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c" (identifier "puVar6") (= "=") (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c")) (; ";")) (expression_statement "(*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);" (call_expression "(*(code *)PTR_SetGeometryInfo_003a9970)(local_3070)" (parenthesized_expression "(*(code *)PTR_SetGeometryInfo_003a9970)" (( "(") (pointer_expression "*(code *)PTR_SetGeometryInfo_003a9970" (* "*") (cast_expression "(code *)PTR_SetGeometryInfo_003a9970" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SetGeometryInfo_003a9970"))) () ")")) (argument_list "(local_3070)" (( "(") (identifier "local_3070") () ")"))) (; ";")) (expression_statement "unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);" (assignment_expression "unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" (identifier "unaff_s6") (= "=") (cast_expression "(ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_AcquireString_003a9814)(0)" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" (( "(") (pointer_expression "*(code *)PTR_AcquireString_003a9814" (* "*") (cast_expression "(code *)PTR_AcquireString_003a9814" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireString_003a9814"))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";")) (expression_statement "iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);" (assignment_expression "iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_GetMagickSignature_003a96ec)(0)" (parenthesized_expression "(*(code *)PTR_GetMagickSignature_003a96ec)" (( "(") (pointer_expression "*(code *)PTR_GetMagickSignature_003a96ec" (* "*") (cast_expression "(code *)PTR_GetMagickSignature_003a96ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickSignature_003a96ec"))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar30 = *(int *)puVar9;" (assignment_expression "iVar30 = *(int *)puVar9" (identifier "iVar30") (= "=") (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9")))) (; ";")) (expression_statement "puVar8[0x10] = 0;" (assignment_expression "puVar8[0x10] = 0" (subscript_expression "puVar8[0x10]" (identifier "puVar8") ([ "[") (number_literal "0x10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[0x11] = 8;" (assignment_expression "puVar8[0x11] = 8" (subscript_expression "puVar8[0x11]" (identifier "puVar8") ([ "[") (number_literal "0x11") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "puVar50 = (ushort *)(iVar30 + (int)unaff_s4);" (assignment_expression "puVar50 = (ushort *)(iVar30 + (int)unaff_s4)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(iVar30 + (int)unaff_s4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + (int)unaff_s4)" (( "(") (binary_expression "iVar30 + (int)unaff_s4" (identifier "iVar30") (+ "+") (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4"))) () ")")))) (; ";")) (expression_statement "puVar8[4] = 0;" (assignment_expression "puVar8[4] = 0" (subscript_expression "puVar8[4]" (identifier "puVar8") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[5] = 0x10;" (assignment_expression "puVar8[5] = 0x10" (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0x10")) (; ";")) (expression_statement "uVar2 = *puVar50;" (assignment_expression "uVar2 = *puVar50" (identifier "uVar2") (= "=") (pointer_expression "*puVar50" (* "*") (identifier "puVar50"))) (; ";")) (expression_statement "puVar11 = unaff_s8;" (assignment_expression "puVar11 = unaff_s8" (identifier "puVar11") (= "=") (identifier "unaff_s8")) (; ";")) (labeled_statement "LAB_0025399c:\n        unaff_s4 = puVar50;" (statement_identifier "LAB_0025399c") (: ":") (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" (identifier "unaff_s4") (= "=") (identifier "puVar50")) (; ";"))) (if_statement "if ((uVar2 & 0x80) != 0) {\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }" (if "if") (parenthesized_expression "((uVar2 & 0x80) != 0)" (( "(") (binary_expression "(uVar2 & 0x80) != 0" (parenthesized_expression "(uVar2 & 0x80)" (( "(") (binary_expression "uVar2 & 0x80" (identifier "uVar2") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );\n        }" ({ "{") (do_statement "do {\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          } while( true );" (do "do") (compound_statement "{\n            unaff_s4 = puVar50;\n            if (puVar11 == (ushort *)&DAT_0000003a) break;\n            if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }\n            iVar30 = *(int *)puVar9;\n            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;\n            do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);\n            unaff_s4 = puVar50;\n            if ((uVar2 & 0x80) == 0) break;\n          }" ({ "{") (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" (identifier "unaff_s4") (= "=") (identifier "puVar50")) (; ";")) (if_statement "if (puVar11 == (ushort *)&DAT_0000003a) break;" (if "if") (parenthesized_expression "(puVar11 == (ushort *)&DAT_0000003a)" (( "(") (binary_expression "puVar11 == (ushort *)&DAT_0000003a" (identifier "puVar11") (== "==") (cast_expression "(ushort *)&DAT_0000003a" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000003a" (& "&") (identifier "DAT_0000003a")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (puVar11 == (ushort *)0x7b) {\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }" (if "if") (parenthesized_expression "(puVar11 == (ushort *)0x7b)" (( "(") (binary_expression "puVar11 == (ushort *)0x7b" (identifier "puVar11") (== "==") (cast_expression "(ushort *)0x7b" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7b"))) () ")")) (compound_statement "{\n              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n              unaff_s8 = puVar11;\n              if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }\n              uVar13 = 0x1000;\n              puVar50 = (ushort *)0x5c;\nLAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);\n              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;\n              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }\n              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;\n              *(byte *)unaff_s8 = 0;\n              puVar38 = puVar11;\n              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);\n              (*(code *)PTR_DestroyString_003a9074)(puVar11);\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }" ({ "{") (expression_statement "puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" (identifier "puVar11") (= "=") (cast_expression "(ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_AcquireString_003a9814)(0)" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" (( "(") (pointer_expression "*(code *)PTR_AcquireString_003a9814" (* "*") (cast_expression "(code *)PTR_AcquireString_003a9814" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireString_003a9814"))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";")) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" (identifier "unaff_s8") (= "=") (identifier "puVar11")) (; ";")) (if_statement "if (puVar11 == (ushort *)0x0) {\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }" (if "if") (parenthesized_expression "(puVar11 == (ushort *)0x0)" (( "(") (binary_expression "puVar11 == (ushort *)0x0" (identifier "puVar11") (== "==") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);\n                uVar48 = 0x10e;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n                local_30d8._0_4_ = (ushort *)0x190;\n                goto LAB_002546ac;\n              }" ({ "{") (labeled_statement "LAB_00254658:\n                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);" (statement_identifier "LAB_00254658") (: ":") (expression_statement "(*(code *)PTR_DestroyString_003a9074)(unaff_s6);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" (( "(") (pointer_expression "*(code *)PTR_DestroyString_003a9074" (* "*") (cast_expression "(code *)PTR_DestroyString_003a9074" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyString_003a9074"))) () ")")) (argument_list "(unaff_s6)" (( "(") (identifier "unaff_s6") () ")"))) (; ";"))) (expression_statement "uVar48 = 0x10e;" (assignment_expression "uVar48 = 0x10e" (identifier "uVar48") (= "=") (number_literal "0x10e")) (; ";")) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" (identifier "local_30d0") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0x3e28" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x3e28"))) (; ";")) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (identifier "puVar38") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x72a4")) () ")")))) (; ";")) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) () ")")))) (; ";")) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8)" (field_expression "local_30d8._4_4_" (identifier "local_30d8") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(ushort *)(PTR_LAB_003a88e0 + 0x16f8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x16f8)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x16f8" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x16f8")) () ")")))) (; ";")) (expression_statement "local_30d8._0_4_ = (ushort *)0x190;" (assignment_expression "local_30d8._0_4_ = (ushort *)0x190" (field_expression "local_30d8._0_4_" (identifier "local_30d8") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(ushort *)0x190" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x190"))) (; ";")) (goto_statement "goto LAB_002546ac;" (goto "goto") (statement_identifier "LAB_002546ac") (; ";")) (} "}"))) (expression_statement "uVar13 = 0x1000;" (assignment_expression "uVar13 = 0x1000" (identifier "uVar13") (= "=") (number_literal "0x1000")) (; ";")) (expression_statement "puVar50 = (ushort *)0x5c;" (assignment_expression "puVar50 = (ushort *)0x5c" (identifier "puVar50") (= "=") (cast_expression "(ushort *)0x5c" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5c"))) (; ";")) (labeled_statement "LAB_0025451c:\n              uVar69 = CONCAT44(puVar11,uVar13);" (statement_identifier "LAB_0025451c") (: ":") (expression_statement "uVar69 = CONCAT44(puVar11,uVar13);" (assignment_expression "uVar69 = CONCAT44(puVar11,uVar13)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(puVar11,uVar13)" (identifier "CONCAT44") (argument_list "(puVar11,uVar13)" (( "(") (identifier "puVar11") (, ",") (identifier "uVar13") () ")")))) (; ";"))) (expression_statement "unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (identifier "unaff_s7") (= "=") (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";")) (if_statement "if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;" (if "if") (parenthesized_expression "(unaff_s7 == (ushort *)0x5c)" (( "(") (binary_expression "unaff_s7 == (ushort *)0x5c" (identifier "unaff_s7") (== "==") (cast_expression "(ushort *)0x5c" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5c"))) () ")")) (goto_statement "goto LAB_00254578;" (goto "goto") (statement_identifier "LAB_00254578") (; ";"))) (while_statement "while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }" (while "while") (parenthesized_expression "((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d)))" (( "(") (parenthesized_expression "(puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))" (( "(") (comma_expression "puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d)" (assignment_expression "puVar7 = PTR_SetImageProperty_003a9534" (identifier "puVar7") (= "=") (identifier "PTR_SetImageProperty_003a9534")) (, ",") (binary_expression "unaff_s7 != (ushort *)0xffffffff &&\n                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d)" (binary_expression "unaff_s7 != (ushort *)0xffffffff" (identifier "unaff_s7") (!= "!=") (cast_expression "(ushort *)0xffffffff" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (&& "&&") (parenthesized_expression "(iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d)" (( "(") (comma_expression "iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d" (assignment_expression "iVar30 = (int)unaff_s8 - (int)puVar11" (identifier "iVar30") (= "=") (binary_expression "(int)unaff_s8 - (int)puVar11" (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8")) (- "-") (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")))) (, ",") (binary_expression "unaff_s7 != (ushort *)0x7d" (identifier "unaff_s7") (!= "!=") (cast_expression "(ushort *)0x7d" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7d")))) () ")")))) () ")")) () ")")) (compound_statement "{\n                while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }\n              }" ({ "{") (while_statement "while( true ) {\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                  puVar35 = PTR_ReadBlobByte_003a97f0;\n                  puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                  if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }\n                  *(byte *)unaff_s8 = (byte)unaff_s7;\n                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);\n                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);\n                  if (unaff_s7 != (ushort *)0x5c) break;\nLAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  iVar30 = (int)unaff_s8 - (int)puVar11;\n                }" ({ "{") (expression_statement "puVar35 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar35 = PTR_ReadBlobByte_003a97f0" (identifier "puVar35") (= "=") (identifier "PTR_ReadBlobByte_003a97f0")) (; ";")) (expression_statement "puVar7 = PTR_ResizeQuantumMemory_003a9420;" (assignment_expression "puVar7 = PTR_ResizeQuantumMemory_003a9420" (identifier "puVar7") (= "=") (identifier "PTR_ResizeQuantumMemory_003a9420")) (; ";")) (if_statement "if (uVar13 <= iVar30 + 1U) {\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }" (if "if") (parenthesized_expression "(uVar13 <= iVar30 + 1U)" (( "(") (binary_expression "uVar13 <= iVar30 + 1U" (identifier "uVar13") (<= "<=") (binary_expression "iVar30 + 1U" (identifier "iVar30") (+ "+") (number_literal "1U"))) () ")")) (compound_statement "{\n                    uVar13 = uVar13 * 2;\n                    *(byte *)unaff_s8 = 0;\n                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);\n                    uVar69 = CONCAT44(puVar11,uVar13);\n                    unaff_s4 = puVar50;\n                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;\n                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);\n                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);\n                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;\n                    goto LAB_0025451c;\n                  }" ({ "{") (expression_statement "uVar13 = uVar13 * 2;" (assignment_expression "uVar13 = uVar13 * 2" (identifier "uVar13") (= "=") (binary_expression "uVar13 * 2" (identifier "uVar13") (* "*") (number_literal "2"))) (; ";")) (expression_statement "*(byte *)unaff_s8 = 0;" (assignment_expression "*(byte *)unaff_s8 = 0" (pointer_expression "*(byte *)unaff_s8" (* "*") (cast_expression "(byte *)unaff_s8" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "unaff_s8"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);" (assignment_expression "puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1)" (identifier "puVar11") (= "=") (cast_expression "(ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1)" (parenthesized_expression "(*(code *)puVar7)" (( "(") (pointer_expression "*(code *)puVar7" (* "*") (cast_expression "(code *)puVar7" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) () ")")) (argument_list "(puVar11,uVar13 + 0x1000,1)" (( "(") (identifier "puVar11") (, ",") (binary_expression "uVar13 + 0x1000" (identifier "uVar13") (+ "+") (number_literal "0x1000")) (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "uVar69 = CONCAT44(puVar11,uVar13);" (assignment_expression "uVar69 = CONCAT44(puVar11,uVar13)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(puVar11,uVar13)" (identifier "CONCAT44") (argument_list "(puVar11,uVar13)" (( "(") (identifier "puVar11") (, ",") (identifier "uVar13") () ")")))) (; ";")) (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" (identifier "unaff_s4") (= "=") (identifier "puVar50")) (; ";")) (if_statement "if (puVar11 == (ushort *)0x0) goto LAB_00254658;" (if "if") (parenthesized_expression "(puVar11 == (ushort *)0x0)" (( "(") (binary_expression "puVar11 == (ushort *)0x0" (identifier "puVar11") (== "==") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00254658;" (goto "goto") (statement_identifier "LAB_00254658") (; ";"))) (expression_statement "iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);" (assignment_expression "iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11)" (identifier "iVar30") (= "=") (call_expression "(*(code *)PTR_strlen_003a9338)(puVar11)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" (( "(") (pointer_expression "*(code *)PTR_strlen_003a9338" (* "*") (cast_expression "(code *)PTR_strlen_003a9338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_003a9338"))) () ")")) (argument_list "(puVar11)" (( "(") (identifier "puVar11") () ")")))) (; ";")) (expression_statement "unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);" (assignment_expression "unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1)" (identifier "unaff_s8") (= "=") (cast_expression "(ushort *)((byte *)((int)puVar11 + iVar30) + 1)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((byte *)((int)puVar11 + iVar30) + 1)" (( "(") (binary_expression "(byte *)((int)puVar11 + iVar30) + 1" (cast_expression "(byte *)((int)puVar11 + iVar30)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + iVar30)" (( "(") (binary_expression "(int)puVar11 + iVar30" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (identifier "iVar30")) () ")"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;" (assignment_expression "*(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7" (pointer_expression "*(byte *)((int)puVar11 + iVar30)" (* "*") (cast_expression "(byte *)((int)puVar11 + iVar30)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + iVar30)" (( "(") (binary_expression "(int)puVar11 + iVar30" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (identifier "iVar30")) () ")")))) (= "=") (cast_expression "(byte)unaff_s7" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "unaff_s7"))) (; ";")) (goto_statement "goto LAB_0025451c;" (goto "goto") (statement_identifier "LAB_0025451c") (; ";")) (} "}"))) (expression_statement "*(byte *)unaff_s8 = (byte)unaff_s7;" (assignment_expression "*(byte *)unaff_s8 = (byte)unaff_s7" (pointer_expression "*(byte *)unaff_s8" (* "*") (cast_expression "(byte *)unaff_s8" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "unaff_s8"))) (= "=") (cast_expression "(byte)unaff_s7" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "unaff_s7"))) (; ";")) (expression_statement "unaff_s8 = (ushort *)((int)unaff_s8 + 1);" (assignment_expression "unaff_s8 = (ushort *)((int)unaff_s8 + 1)" (identifier "unaff_s8") (= "=") (cast_expression "(ushort *)((int)unaff_s8 + 1)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s8 + 1)" (( "(") (binary_expression "(int)unaff_s8 + 1" (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);" (assignment_expression "unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8)" (identifier "unaff_s7") (= "=") (cast_expression "(ushort *)(*(code *)puVar35)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar35)(puVar8)" (parenthesized_expression "(*(code *)puVar35)" (( "(") (pointer_expression "*(code *)puVar35" (* "*") (cast_expression "(code *)puVar35" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar35"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";")) (if_statement "if (unaff_s7 != (ushort *)0x5c) break;" (if "if") (parenthesized_expression "(unaff_s7 != (ushort *)0x5c)" (( "(") (binary_expression "unaff_s7 != (ushort *)0x5c" (identifier "unaff_s7") (!= "!=") (cast_expression "(ushort *)0x5c" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5c"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00254578:\n                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (statement_identifier "LAB_00254578") (: ":") (expression_statement "unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (identifier "unaff_s7") (= "=") (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";"))) (expression_statement "iVar30 = (int)unaff_s8 - (int)puVar11;" (assignment_expression "iVar30 = (int)unaff_s8 - (int)puVar11" (identifier "iVar30") (= "=") (binary_expression "(int)unaff_s8 - (int)puVar11" (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8")) (- "-") (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")))) (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;" (assignment_expression "puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928" (identifier "puVar35") (= "=") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x1928"))) (; ";")) (expression_statement "*(byte *)unaff_s8 = 0;" (assignment_expression "*(byte *)unaff_s8 = 0" (pointer_expression "*(byte *)unaff_s8" (* "*") (cast_expression "(byte *)unaff_s8" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "unaff_s8"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar38 = puVar11;" (assignment_expression "puVar38 = puVar11" (identifier "puVar38") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "(*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);" (call_expression "(*(code *)puVar7)(puVar8,puVar35,puVar11,param_2)" (parenthesized_expression "(*(code *)puVar7)" (( "(") (pointer_expression "*(code *)puVar7" (* "*") (cast_expression "(code *)puVar7" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) () ")")) (argument_list "(puVar8,puVar35,puVar11,param_2)" (( "(") (identifier "puVar8") (, ",") (identifier "puVar35") (, ",") (identifier "puVar11") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(puVar11);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(puVar11)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" (( "(") (pointer_expression "*(code *)PTR_DestroyString_003a9074" (* "*") (cast_expression "(code *)PTR_DestroyString_003a9074" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyString_003a9074"))) () ")")) (argument_list "(puVar11)" (( "(") (identifier "puVar11") () ")"))) (; ";")) (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (identifier "puVar11") (= "=") (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";")) (} "}")) (else_clause "else if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }" (else "else") (if_statement "if ((uVar2 & 0x800) == 0) {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }\n            else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }" (if "if") (parenthesized_expression "((uVar2 & 0x800) == 0)" (( "(") (binary_expression "(uVar2 & 0x800) == 0" (parenthesized_expression "(uVar2 & 0x800)" (( "(") (binary_expression "uVar2 & 0x800" (identifier "uVar2") (& "&") (number_literal "0x800")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            }" ({ "{") (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (identifier "puVar11") (= "=") (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }" (else "else") (compound_statement "{\n              puVar50 = unaff_s5;\n              if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }\nLAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);\n              uVar36 = (uint)uVar69;\n              *(byte *)puVar50 = 0;\n              uVar2 = *(ushort *)(iVar30 + iVar12);\n              while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }\n              unaff_s7 = unaff_s6;\n              if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }\nLAB_00253a68:\n              *(byte *)unaff_s7 = 0;\n              if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }\n              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;\n              if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }\n              puVar38 = unaff_s6;\n              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);\n            }" ({ "{") (expression_statement "puVar50 = unaff_s5;" (assignment_expression "puVar50 = unaff_s5" (identifier "puVar50") (= "=") (identifier "unaff_s5")) (; ";")) (if_statement "if (puVar11 == (ushort *)0x3d) {\n                iVar12 = 0x7a;\n              }\n              else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }" (if "if") (parenthesized_expression "(puVar11 == (ushort *)0x3d)" (( "(") (binary_expression "puVar11 == (ushort *)0x3d" (identifier "puVar11") (== "==") (cast_expression "(ushort *)0x3d" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3d"))) () ")")) (compound_statement "{\n                iVar12 = 0x7a;\n              }" ({ "{") (expression_statement "iVar12 = 0x7a;" (assignment_expression "iVar12 = 0x7a" (identifier "iVar12") (= "=") (number_literal "0x7a")) (; ";")) (} "}")) (else_clause "else {\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }" (else "else") (compound_statement "{\n                uVar69 = 0xffffffff0000003d;\n                do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);\n                iVar30 = *(int *)puVar9;\n                iVar12 = 0x7a;\n              }" ({ "{") (expression_statement "uVar69 = 0xffffffff0000003d;" (assignment_expression "uVar69 = 0xffffffff0000003d" (identifier "uVar69") (= "=") (number_literal "0xffffffff0000003d")) (; ";")) (do_statement "do {\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                } while (puVar11 != (ushort *)0x3d);" (do "do") (compound_statement "{\n                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }\n                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                  if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }\n                }" ({ "{") (if_statement "if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }" (if "if") (parenthesized_expression "((uint)((int)puVar50 - (int)unaff_s5) < 0xfff)" (( "(") (binary_expression "(uint)((int)puVar50 - (int)unaff_s5) < 0xfff" (call_expression "(uint)((int)puVar50 - (int)unaff_s5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar50 - (int)unaff_s5)" (( "(") (binary_expression "(int)puVar50 - (int)unaff_s5" (cast_expression "(int)puVar50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar50")) (- "-") (cast_expression "(int)unaff_s5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s5"))) () ")"))) (< "<") (number_literal "0xfff")) () ")")) (compound_statement "{\n                    *(byte *)puVar50 = (byte)puVar11;\n                    puVar50 = (ushort *)((int)puVar50 + 1);\n                  }" ({ "{") (expression_statement "*(byte *)puVar50 = (byte)puVar11;" (assignment_expression "*(byte *)puVar50 = (byte)puVar11" (pointer_expression "*(byte *)puVar50" (* "*") (cast_expression "(byte *)puVar50" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar50"))) (= "=") (cast_expression "(byte)puVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "puVar11"))) (; ";")) (expression_statement "puVar50 = (ushort *)((int)puVar50 + 1);" (assignment_expression "puVar50 = (ushort *)((int)puVar50 + 1)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)((int)puVar50 + 1)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar50 + 1)" (( "(") (binary_expression "(int)puVar50 + 1" (cast_expression "(int)puVar50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar50")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (identifier "puVar11") (= "=") (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";")) (if_statement "if (puVar11 == (ushort *)0xffffffff) {\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }" (if "if") (parenthesized_expression "(puVar11 == (ushort *)0xffffffff)" (( "(") (binary_expression "puVar11 == (ushort *)0xffffffff" (identifier "puVar11") (== "==") (cast_expression "(ushort *)0xffffffff" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n                    iVar30 = *(int *)puVar9;\n                    iVar12 = -2;\n                    uVar69 = 0xffffffff0000003d;\n                    goto LAB_00253a18;\n                  }" ({ "{") (expression_statement "iVar30 = *(int *)puVar9;" (assignment_expression "iVar30 = *(int *)puVar9" (identifier "iVar30") (= "=") (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9")))) (; ";")) (expression_statement "iVar12 = -2;" (assignment_expression "iVar12 = -2" (identifier "iVar12") (= "=") (number_literal "-2")) (; ";")) (expression_statement "uVar69 = 0xffffffff0000003d;" (assignment_expression "uVar69 = 0xffffffff0000003d" (identifier "uVar69") (= "=") (number_literal "0xffffffff0000003d")) (; ";")) (goto_statement "goto LAB_00253a18;" (goto "goto") (statement_identifier "LAB_00253a18") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(puVar11 != (ushort *)0x3d)" (( "(") (binary_expression "puVar11 != (ushort *)0x3d" (identifier "puVar11") (!= "!=") (cast_expression "(ushort *)0x3d" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3d"))) () ")")) (; ";")) (expression_statement "iVar30 = *(int *)puVar9;" (assignment_expression "iVar30 = *(int *)puVar9" (identifier "iVar30") (= "=") (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9")))) (; ";")) (expression_statement "iVar12 = 0x7a;" (assignment_expression "iVar12 = 0x7a" (identifier "iVar12") (= "=") (number_literal "0x7a")) (; ";")) (} "}")))) (labeled_statement "LAB_00253a18:\n              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);" (statement_identifier "LAB_00253a18") (: ":") (expression_statement "uVar13 = (uint)((ulonglong)uVar69 >> 0x20);" (assignment_expression "uVar13 = (uint)((ulonglong)uVar69 >> 0x20)" (identifier "uVar13") (= "=") (call_expression "(uint)((ulonglong)uVar69 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar69 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar69 >> 0x20" (cast_expression "(ulonglong)uVar69" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar69")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "uVar36 = (uint)uVar69;" (assignment_expression "uVar36 = (uint)uVar69" (identifier "uVar36") (= "=") (cast_expression "(uint)uVar69" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar69"))) (; ";")) (expression_statement "*(byte *)puVar50 = 0;" (assignment_expression "*(byte *)puVar50 = 0" (pointer_expression "*(byte *)puVar50" (* "*") (cast_expression "(byte *)puVar50" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar50"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = *(ushort *)(iVar30 + iVar12);" (assignment_expression "uVar2 = *(ushort *)(iVar30 + iVar12)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)(iVar30 + iVar12)" (* "*") (cast_expression "(ushort *)(iVar30 + iVar12)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + iVar12)" (( "(") (binary_expression "iVar30 + iVar12" (identifier "iVar30") (+ "+") (identifier "iVar12")) () ")"))))) (; ";")) (while_statement "while ((uVar2 & 0x20) != 0) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }" (while "while") (parenthesized_expression "((uVar2 & 0x20) != 0)" (( "(") (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" (( "(") (binary_expression "uVar2 & 0x20" (identifier "uVar2") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);\n              }" ({ "{") (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (identifier "puVar11") (= "=") (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";")) (expression_statement "uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);" (assignment_expression "uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2)" (* "*") (cast_expression "(ushort *)(*(int *)puVar9 + (int)puVar11 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar9 + (int)puVar11 * 2)" (( "(") (binary_expression "*(int *)puVar9 + (int)puVar11 * 2" (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (+ "+") (binary_expression "(int)puVar11 * 2" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (* "*") (number_literal "2"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "unaff_s7 = unaff_s6;" (assignment_expression "unaff_s7 = unaff_s6" (identifier "unaff_s7") (= "=") (identifier "unaff_s6")) (; ";")) (if_statement "if (puVar11 == (ushort *)0x3d) {\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }" (if "if") (parenthesized_expression "(puVar11 == (ushort *)0x3d)" (( "(") (binary_expression "puVar11 == (ushort *)0x3d" (identifier "puVar11") (== "==") (cast_expression "(ushort *)0x3d" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3d"))) () ")")) (compound_statement "{\n                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }\njoined_r0x00254fe4:\n                unaff_s4 = puVar50;\n                if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }\n              }" ({ "{") (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (identifier "puVar11") (= "=") (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";")) (if_statement "if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   ) {\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }\n                else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }" (if "if") (parenthesized_expression "((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)\n                   )" (( "(") (binary_expression "(puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)" (parenthesized_expression "(puVar11 == (ushort *)0x7d)" (( "(") (binary_expression "puVar11 == (ushort *)0x7d" (identifier "puVar11") (== "==") (cast_expression "(ushort *)0x7d" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7d"))) () ")")) (|| "||") (parenthesized_expression "(uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)" (( "(") (comma_expression "uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff" (assignment_expression "uVar13 = 0xfff" (identifier "uVar13") (= "=") (number_literal "0xfff")) (, ",") (binary_expression "puVar11 == (ushort *)0xffffffff" (identifier "puVar11") (== "==") (cast_expression "(ushort *)0xffffffff" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff")))) () ")"))) () ")")) (compound_statement "{\n                  uVar69 = CONCAT44(uVar13,uVar36);\n                }" ({ "{") (expression_statement "uVar69 = CONCAT44(uVar13,uVar36);" (assignment_expression "uVar69 = CONCAT44(uVar13,uVar36)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(uVar13,uVar36)" (identifier "CONCAT44") (argument_list "(uVar13,uVar36)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar36") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }" (else "else") (compound_statement "{\n                  uVar36 = 0x7d;\n                  do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));\n                }" ({ "{") (expression_statement "uVar36 = 0x7d;" (assignment_expression "uVar36 = 0x7d" (identifier "uVar36") (= "=") (number_literal "0x7d")) (; ";")) (do_statement "do {\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));" (do "do") (compound_statement "{\n                    iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                    unaff_s4 = puVar50;\n                    while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }\n                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;\nLAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;\nLAB_002547e0:\n                    uVar69 = uVar3;\n                  }" ({ "{") (expression_statement "iVar30 = (int)unaff_s7 - (int)unaff_s6;" (assignment_expression "iVar30 = (int)unaff_s7 - (int)unaff_s6" (identifier "iVar30") (= "=") (binary_expression "(int)unaff_s7 - (int)unaff_s6" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (- "-") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6")))) (; ";")) (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" (identifier "unaff_s4") (= "=") (identifier "puVar50")) (; ";")) (while_statement "while( true ) {\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                      puVar50 = unaff_s7;\n                      puVar7 = PTR_ResizeQuantumMemory_003a9420;\n                      if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      uVar3 = CONCAT44(uVar13,0x7d);\n                      uVar69 = CONCAT44(uVar13,0x7d);\n                      *(byte *)puVar50 = (byte)puVar11;\n                      unaff_s7 = (ushort *)((int)puVar50 + 1);\n                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                      if (puVar11 != (ushort *)0x5c) break;\n                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n                      puVar7 = PTR_ReadBlobByte_003a97f0;\n                      if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }\n                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;\n                      iVar30 = (int)unaff_s7 - (int)unaff_s6;\n                      unaff_s4 = puVar50;\n                      uVar69 = uVar3;\n                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;\n                    }" ({ "{") (expression_statement "puVar50 = unaff_s7;" (assignment_expression "puVar50 = unaff_s7" (identifier "puVar50") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "puVar7 = PTR_ResizeQuantumMemory_003a9420;" (assignment_expression "puVar7 = PTR_ResizeQuantumMemory_003a9420" (identifier "puVar7") (= "=") (identifier "PTR_ResizeQuantumMemory_003a9420")) (; ";")) (if_statement "if (uVar13 <= iVar30 + 1U) {\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }" (if "if") (parenthesized_expression "(uVar13 <= iVar30 + 1U)" (( "(") (binary_expression "uVar13 <= iVar30 + 1U" (identifier "uVar13") (<= "<=") (binary_expression "iVar30 + 1U" (identifier "iVar30") (+ "+") (number_literal "1U"))) () ")")) (compound_statement "{\n                        uVar13 = uVar13 * 2;\n                        *(byte *)puVar50 = 0;\n                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);\n                        unaff_s7 = puVar50;\n                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;\n                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);\n                      }" ({ "{") (expression_statement "uVar13 = uVar13 * 2;" (assignment_expression "uVar13 = uVar13 * 2" (identifier "uVar13") (= "=") (binary_expression "uVar13 * 2" (identifier "uVar13") (* "*") (number_literal "2"))) (; ";")) (expression_statement "*(byte *)puVar50 = 0;" (assignment_expression "*(byte *)puVar50 = 0" (pointer_expression "*(byte *)puVar50" (* "*") (cast_expression "(byte *)puVar50" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar50"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);" (assignment_expression "unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1)" (identifier "unaff_s6") (= "=") (cast_expression "(ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1)" (parenthesized_expression "(*(code *)puVar7)" (( "(") (pointer_expression "*(code *)puVar7" (* "*") (cast_expression "(code *)puVar7" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) () ")")) (argument_list "(unaff_s6,uVar13 + 0x1000,1)" (( "(") (identifier "unaff_s6") (, ",") (binary_expression "uVar13 + 0x1000" (identifier "uVar13") (+ "+") (number_literal "0x1000")) (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "unaff_s7 = puVar50;" (assignment_expression "unaff_s7 = puVar50" (identifier "unaff_s7") (= "=") (identifier "puVar50")) (; ";")) (if_statement "if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;" (if "if") (parenthesized_expression "(unaff_s6 == (ushort *)0x0)" (( "(") (binary_expression "unaff_s6 == (ushort *)0x0" (identifier "unaff_s6") (== "==") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00254848;" (goto "goto") (statement_identifier "LAB_00254848") (; ";"))) (expression_statement "iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);" (assignment_expression "iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6)" (identifier "iVar30") (= "=") (call_expression "(*(code *)PTR_strlen_003a9338)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" (( "(") (pointer_expression "*(code *)PTR_strlen_003a9338" (* "*") (cast_expression "(code *)PTR_strlen_003a9338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_003a9338"))) () ")")) (argument_list "(unaff_s6)" (( "(") (identifier "unaff_s6") () ")")))) (; ";")) (expression_statement "puVar50 = (ushort *)((int)unaff_s6 + iVar30);" (assignment_expression "puVar50 = (ushort *)((int)unaff_s6 + iVar30)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)((int)unaff_s6 + iVar30)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s6 + iVar30)" (( "(") (binary_expression "(int)unaff_s6 + iVar30" (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6")) (+ "+") (identifier "iVar30")) () ")")))) (; ";")) (} "}"))) (expression_statement "puVar7 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar7 = PTR_ReadBlobByte_003a97f0" (identifier "puVar7") (= "=") (identifier "PTR_ReadBlobByte_003a97f0")) (; ";")) (expression_statement "uVar3 = CONCAT44(uVar13,0x7d);" (assignment_expression "uVar3 = CONCAT44(uVar13,0x7d)" (identifier "uVar3") (= "=") (call_expression "CONCAT44(uVar13,0x7d)" (identifier "CONCAT44") (argument_list "(uVar13,0x7d)" (( "(") (identifier "uVar13") (, ",") (number_literal "0x7d") () ")")))) (; ";")) (expression_statement "uVar69 = CONCAT44(uVar13,0x7d);" (assignment_expression "uVar69 = CONCAT44(uVar13,0x7d)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(uVar13,0x7d)" (identifier "CONCAT44") (argument_list "(uVar13,0x7d)" (( "(") (identifier "uVar13") (, ",") (number_literal "0x7d") () ")")))) (; ";")) (expression_statement "*(byte *)puVar50 = (byte)puVar11;" (assignment_expression "*(byte *)puVar50 = (byte)puVar11" (pointer_expression "*(byte *)puVar50" (* "*") (cast_expression "(byte *)puVar50" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar50"))) (= "=") (cast_expression "(byte)puVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "puVar11"))) (; ";")) (expression_statement "unaff_s7 = (ushort *)((int)puVar50 + 1);" (assignment_expression "unaff_s7 = (ushort *)((int)puVar50 + 1)" (identifier "unaff_s7") (= "=") (cast_expression "(ushort *)((int)puVar50 + 1)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar50 + 1)" (( "(") (binary_expression "(int)puVar50 + 1" (cast_expression "(int)puVar50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar50")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar11 = (ushort *)(*(code *)puVar7)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)puVar7)(puVar8)" (identifier "puVar11") (= "=") (cast_expression "(ushort *)(*(code *)puVar7)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar7)(puVar8)" (parenthesized_expression "(*(code *)puVar7)" (( "(") (pointer_expression "*(code *)puVar7" (* "*") (cast_expression "(code *)puVar7" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";")) (if_statement "if (puVar11 != (ushort *)0x5c) break;" (if "if") (parenthesized_expression "(puVar11 != (ushort *)0x5c)" (( "(") (binary_expression "puVar11 != (ushort *)0x5c" (identifier "puVar11") (!= "!=") (cast_expression "(ushort *)0x5c" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5c"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (identifier "puVar11") (= "=") (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";")) (expression_statement "puVar7 = PTR_ReadBlobByte_003a97f0;" (assignment_expression "puVar7 = PTR_ReadBlobByte_003a97f0" (identifier "puVar7") (= "=") (identifier "PTR_ReadBlobByte_003a97f0")) (; ";")) (if_statement "if (puVar11 == (ushort *)0x7d) {\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }" (if "if") (parenthesized_expression "(puVar11 == (ushort *)0x7d)" (( "(") (binary_expression "puVar11 == (ushort *)0x7d" (identifier "puVar11") (== "==") (cast_expression "(ushort *)0x7d" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7d"))) () ")")) (compound_statement "{\n                        *(byte *)((int)puVar50 + 1) = 0x7d;\n                        unaff_s7 = puVar50 + 1;\n                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);\n                        break;\n                      }" ({ "{") (expression_statement "*(byte *)((int)puVar50 + 1) = 0x7d;" (assignment_expression "*(byte *)((int)puVar50 + 1) = 0x7d" (pointer_expression "*(byte *)((int)puVar50 + 1)" (* "*") (cast_expression "(byte *)((int)puVar50 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar50 + 1)" (( "(") (binary_expression "(int)puVar50 + 1" (cast_expression "(int)puVar50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar50")) (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0x7d")) (; ";")) (expression_statement "unaff_s7 = puVar50 + 1;" (assignment_expression "unaff_s7 = puVar50 + 1" (identifier "unaff_s7") (= "=") (binary_expression "puVar50 + 1" (identifier "puVar50") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar11 = (ushort *)(*(code *)puVar7)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)puVar7)(puVar8)" (identifier "puVar11") (= "=") (cast_expression "(ushort *)(*(code *)puVar7)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar7)(puVar8)" (parenthesized_expression "(*(code *)puVar7)" (( "(") (pointer_expression "*(code *)puVar7" (* "*") (cast_expression "(code *)puVar7" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;" (if "if") (parenthesized_expression "(*(byte *)unaff_s6 != 0x7b)" (( "(") (binary_expression "*(byte *)unaff_s6 != 0x7b" (pointer_expression "*(byte *)unaff_s6" (* "*") (cast_expression "(byte *)unaff_s6" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "unaff_s6"))) (!= "!=") (number_literal "0x7b")) () ")")) (goto_statement "goto LAB_002547c4;" (goto "goto") (statement_identifier "LAB_002547c4") (; ";"))) (expression_statement "iVar30 = (int)unaff_s7 - (int)unaff_s6;" (assignment_expression "iVar30 = (int)unaff_s7 - (int)unaff_s6" (identifier "iVar30") (= "=") (binary_expression "(int)unaff_s7 - (int)unaff_s6" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (- "-") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6")))) (; ";")) (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" (identifier "unaff_s4") (= "=") (identifier "puVar50")) (; ";")) (expression_statement "uVar69 = uVar3;" (assignment_expression "uVar69 = uVar3" (identifier "uVar69") (= "=") (identifier "uVar3")) (; ";")) (if_statement "if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;" (if "if") (parenthesized_expression "(puVar11 == (ushort *)0xffffffff)" (( "(") (binary_expression "puVar11 == (ushort *)0xffffffff" (identifier "puVar11") (== "==") (cast_expression "(ushort *)0xffffffff" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (goto_statement "goto joined_r0x00254fe4;" (goto "goto") (statement_identifier "joined_r0x00254fe4") (; ";"))) (} "}"))) (if_statement "if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;" (if "if") (parenthesized_expression "(*(byte *)unaff_s6 == 0x7b)" (( "(") (binary_expression "*(byte *)unaff_s6 == 0x7b" (pointer_expression "*(byte *)unaff_s6" (* "*") (cast_expression "(byte *)unaff_s6" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "unaff_s6"))) (== "==") (number_literal "0x7b")) () ")")) (goto_statement "goto LAB_002547e0;" (goto "goto") (statement_identifier "LAB_002547e0") (; ";"))) (labeled_statement "LAB_002547c4:\n                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;" (statement_identifier "LAB_002547c4") (: ":") (if_statement "if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)\n                    goto LAB_00253a68;" (if "if") (parenthesized_expression "((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)" (( "(") (binary_expression "(*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20)" (( "(") (binary_expression "*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20" (pointer_expression "*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2)" (* "*") (cast_expression "(ushort *)(*(int *)puVar9 + (int)puVar11 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar9 + (int)puVar11 * 2)" (( "(") (binary_expression "*(int *)puVar9 + (int)puVar11 * 2" (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (+ "+") (binary_expression "(int)puVar11 * 2" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00253a68;" (goto "goto") (statement_identifier "LAB_00253a68") (; ";")))) (labeled_statement "LAB_002547e0:\n                    uVar69 = uVar3;" (statement_identifier "LAB_002547e0") (: ":") (expression_statement "uVar69 = uVar3;" (assignment_expression "uVar69 = uVar3" (identifier "uVar69") (= "=") (identifier "uVar3")) (; ";"))) (} "}")) (while "while") (parenthesized_expression "((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff))" (( "(") (binary_expression "(puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff)" (parenthesized_expression "(puVar11 != (ushort *)0x7d)" (( "(") (binary_expression "puVar11 != (ushort *)0x7d" (identifier "puVar11") (!= "!=") (cast_expression "(ushort *)0x7d" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7d"))) () ")")) (&& "&&") (parenthesized_expression "(puVar11 != (ushort *)0xffffffff)" (( "(") (binary_expression "puVar11 != (ushort *)0xffffffff" (identifier "puVar11") (!= "!=") (cast_expression "(ushort *)0xffffffff" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")"))) () ")")) (; ";")) (} "}")))) (labeled_statement "joined_r0x00254fe4:\n                unaff_s4 = puVar50;" (statement_identifier "joined_r0x00254fe4") (: ":") (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" (identifier "unaff_s4") (= "=") (identifier "puVar50")) (; ";"))) (if_statement "if (unaff_s6 == (ushort *)0x0) {\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }" (if "if") (parenthesized_expression "(unaff_s6 == (ushort *)0x0)" (( "(") (binary_expression "unaff_s6 == (ushort *)0x0" (identifier "unaff_s6") (== "==") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00254848:\n                  uVar48 = 0x14c;\n                  goto LAB_00254850;\n                }" ({ "{") (labeled_statement "LAB_00254848:\n                  uVar48 = 0x14c;" (statement_identifier "LAB_00254848") (: ":") (expression_statement "uVar48 = 0x14c;" (assignment_expression "uVar48 = 0x14c" (identifier "uVar48") (= "=") (number_literal "0x14c")) (; ";"))) (goto_statement "goto LAB_00254850;" (goto "goto") (statement_identifier "LAB_00254850") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00253a68:\n              *(byte *)unaff_s7 = 0;" (statement_identifier "LAB_00253a68") (: ":") (expression_statement "*(byte *)unaff_s7 = 0;" (assignment_expression "*(byte *)unaff_s7 = 0" (pointer_expression "*(byte *)unaff_s7" (* "*") (cast_expression "(byte *)unaff_s7" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "unaff_s7"))) (= "=") (number_literal "0")) (; ";"))) (if_statement "if (*(byte *)unaff_s6 == 0x7b) {\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }" (if "if") (parenthesized_expression "(*(byte *)unaff_s6 == 0x7b)" (( "(") (binary_expression "*(byte *)unaff_s6 == 0x7b" (pointer_expression "*(byte *)unaff_s6" (* "*") (cast_expression "(byte *)unaff_s6" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "unaff_s6"))) (== "==") (number_literal "0x7b")) () ")")) (compound_statement "{\n                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);\n                (*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);\n              }" ({ "{") (expression_statement "uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);" (assignment_expression "uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6)" (identifier "uVar48") (= "=") (call_expression "(*(code *)PTR_strlen_003a9338)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_strlen_003a9338)" (( "(") (pointer_expression "*(code *)PTR_strlen_003a9338" (* "*") (cast_expression "(code *)PTR_strlen_003a9338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_003a9338"))) () ")")) (argument_list "(unaff_s6)" (( "(") (identifier "unaff_s6") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)\n                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" (( "(") (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" (* "*") (cast_expression "(code *)PTR_CopyMagickString_003a983c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CopyMagickString_003a983c"))) () ")")) (argument_list "(unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48)" (( "(") (identifier "unaff_s6") (, ",") (cast_expression "(byte *)((int)unaff_s6 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s6 + 1)" (( "(") (binary_expression "(int)unaff_s6 + 1" (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6")) (+ "+") (number_literal "1")) () ")"))) (, ",") (identifier "uVar48") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;" (assignment_expression "uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff" (identifier "uVar13") (= "=") (binary_expression "local_1044[0]._0_1_ - 0x41 & 0xff" (binary_expression "local_1044[0]._0_1_ - 0x41" (field_expression "local_1044[0]._0_1_" (subscript_expression "local_1044[0]" (identifier "local_1044") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_0_1_")) (- "-") (number_literal "0x41")) (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if (uVar13 < 0x37) {\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }" (if "if") (parenthesized_expression "(uVar13 < 0x37)" (( "(") (binary_expression "uVar13 < 0x37" (identifier "uVar13") (< "<") (number_literal "0x37")) () ")")) (compound_statement "{\n                    \n                    \n                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();\n                return iVar10;\n              }" ({ "{") (expression_statement "iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();" (assignment_expression "iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))()" (identifier "iVar10") (= "=") (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380))" (( "(") (binary_expression "&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(puVar6 + uVar13 * 4 + -0x7380)" (* "*") (cast_expression "(int *)(puVar6 + uVar13 * 4 + -0x7380)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + uVar13 * 4 + -0x7380)" (( "(") (binary_expression "puVar6 + uVar13 * 4 + -0x7380" (binary_expression "puVar6 + uVar13 * 4" (identifier "puVar6") (+ "+") (binary_expression "uVar13 * 4" (identifier "uVar13") (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x7380")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar10;" (return "return") (identifier "iVar10") (; ";")) (} "}"))) (expression_statement "puVar38 = unaff_s6;" (assignment_expression "puVar38 = unaff_s6" (identifier "puVar38") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "(*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);" (call_expression "(*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2)" (parenthesized_expression "(*(code *)PTR_SetImageProperty_003a9534)" (( "(") (pointer_expression "*(code *)PTR_SetImageProperty_003a9534" (* "*") (cast_expression "(code *)PTR_SetImageProperty_003a9534" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SetImageProperty_003a9534"))) () ")")) (argument_list "(puVar8,unaff_s5,unaff_s6,param_2)" (( "(") (identifier "puVar8") (, ",") (identifier "unaff_s5") (, ",") (identifier "unaff_s6") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}")))))) (expression_statement "iVar30 = *(int *)puVar9;" (assignment_expression "iVar30 = *(int *)puVar9" (identifier "iVar30") (= "=") (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9")))) (; ";")) (expression_statement "uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)(iVar30 + (int)puVar11 * 2)" (* "*") (cast_expression "(ushort *)(iVar30 + (int)puVar11 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + (int)puVar11 * 2)" (( "(") (binary_expression "iVar30 + (int)puVar11 * 2" (identifier "iVar30") (+ "+") (binary_expression "(int)puVar11 * 2" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (* "*") (number_literal "2"))) () ")"))))) (; ";")) (if_statement "if ((uVar2 & 0x20) == 0) goto LAB_0025399c;" (if "if") (parenthesized_expression "((uVar2 & 0x20) == 0)" (( "(") (binary_expression "(uVar2 & 0x20) == 0" (parenthesized_expression "(uVar2 & 0x20)" (( "(") (binary_expression "uVar2 & 0x20" (identifier "uVar2") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0025399c;" (goto "goto") (statement_identifier "LAB_0025399c") (; ";"))) (do_statement "do {\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            } while ((uVar2 & 0x20) != 0);" (do "do") (compound_statement "{\n              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n              iVar30 = *(int *)puVar9;\n              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);\n            }" ({ "{") (expression_statement "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (identifier "puVar11") (= "=") (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";")) (expression_statement "iVar30 = *(int *)puVar9;" (assignment_expression "iVar30 = *(int *)puVar9" (identifier "iVar30") (= "=") (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9")))) (; ";")) (expression_statement "uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)(iVar30 + (int)puVar11 * 2)" (* "*") (cast_expression "(ushort *)(iVar30 + (int)puVar11 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + (int)puVar11 * 2)" (( "(") (binary_expression "iVar30 + (int)puVar11 * 2" (identifier "iVar30") (+ "+") (binary_expression "(int)puVar11 * 2" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (* "*") (number_literal "2"))) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uVar2 & 0x20) != 0)" (( "(") (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" (( "(") (binary_expression "uVar2 & 0x20" (identifier "uVar2") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "unaff_s4 = puVar50;" (assignment_expression "unaff_s4 = puVar50" (identifier "unaff_s4") (= "=") (identifier "puVar50")) (; ";")) (if_statement "if ((uVar2 & 0x80) == 0) break;" (if "if") (parenthesized_expression "((uVar2 & 0x80) == 0)" (( "(") (binary_expression "(uVar2 & 0x80) == 0" (parenthesized_expression "(uVar2 & 0x80)" (( "(") (binary_expression "uVar2 & 0x80" (identifier "uVar2") (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(unaff_s6);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(unaff_s6)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" (( "(") (pointer_expression "*(code *)PTR_DestroyString_003a9074" (* "*") (cast_expression "(code *)PTR_DestroyString_003a9074" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyString_003a9074"))) () ")")) (argument_list "(unaff_s6)" (( "(") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))) (; ";")) (expression_statement "iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);" (assignment_expression "iVar30 = (*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474)" (identifier "iVar30") (= "=") (call_expression "(*(code *)PTR_LocaleCompare_003a9110)\n                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474)" (parenthesized_expression "(*(code *)PTR_LocaleCompare_003a9110)" (( "(") (pointer_expression "*(code *)PTR_LocaleCompare_003a9110" (* "*") (cast_expression "(code *)PTR_LocaleCompare_003a9110" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_LocaleCompare_003a9110"))) () ")")) (argument_list "(local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474)" (( "(") (identifier "local_2044") (, ",") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x7474")) () ")")))) (; ";")) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" (identifier "unaff_s8") (= "=") (identifier "puVar11")) (; ";")) (if_statement "if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }" (if "if") (parenthesized_expression "((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U))" (( "(") (binary_expression "(((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||\n           (0x3f < *(int *)(puVar8 + 0x10) - 1U)" (parenthesized_expression "(((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162)))))))" (( "(") (binary_expression "((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||\n            ((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))" (parenthesized_expression "((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0))))" (( "(") (binary_expression "(((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||\n             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))" (parenthesized_expression "(((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0))" (( "(") (binary_expression "((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)" (parenthesized_expression "((iVar30 != 0) || (*(int *)puVar8 == 0))" (( "(") (binary_expression "(iVar30 != 0) || (*(int *)puVar8 == 0)" (parenthesized_expression "(iVar30 != 0)" (( "(") (binary_expression "iVar30 != 0" (identifier "iVar30") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)puVar8 == 0)" (( "(") (binary_expression "*(int *)puVar8 == 0" (pointer_expression "*(int *)puVar8" (* "*") (cast_expression "(int *)puVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar8"))) (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(puVar8 + 4) == 0)" (( "(") (binary_expression "*(int *)(puVar8 + 4) == 0" (pointer_expression "*(int *)(puVar8 + 4)" (* "*") (cast_expression "(int *)(puVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 4)" (( "(") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))" (( "(") (parenthesized_expression "(*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0))" (( "(") (binary_expression "*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)" (binary_expression "*(int *)(puVar8 + 0xc) == 0" (pointer_expression "*(int *)(puVar8 + 0xc)" (* "*") (cast_expression "(int *)(puVar8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0xc)" (( "(") (binary_expression "puVar8 + 0xc" (identifier "puVar8") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(*(int *)(puVar8 + 0xe) == 0)" (( "(") (binary_expression "*(int *)(puVar8 + 0xe) == 0" (pointer_expression "*(int *)(puVar8 + 0xe)" (* "*") (cast_expression "(int *)(puVar8 + 0xe)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0xe)" (( "(") (binary_expression "puVar8 + 0xe" (identifier "puVar8") (+ "+") (number_literal "0xe")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))" (( "(") (parenthesized_expression "(0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162)))))" (( "(") (binary_expression "0x40 < *(uint *)(puVar8 + 0x160) ||\n             ((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))" (binary_expression "0x40 < *(uint *)(puVar8 + 0x160)" (number_literal "0x40") (< "<") (pointer_expression "*(uint *)(puVar8 + 0x160)" (* "*") (cast_expression "(uint *)(puVar8 + 0x160)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x160)" (( "(") (binary_expression "puVar8 + 0x160" (identifier "puVar8") (+ "+") (number_literal "0x160")) () ")"))))) (|| "||") (parenthesized_expression "((0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))" (( "(") (parenthesized_expression "(0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162)))" (( "(") (binary_expression "0x38 < *(uint *)(puVar8 + 0x162) ||\n              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))" (binary_expression "0x38 < *(uint *)(puVar8 + 0x162)" (number_literal "0x38") (< "<") (pointer_expression "*(uint *)(puVar8 + 0x162)" (* "*") (cast_expression "(uint *)(puVar8 + 0x162)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x162)" (( "(") (binary_expression "puVar8 + 0x162" (identifier "puVar8") (+ "+") (number_literal "0x162")) () ")"))))) (|| "||") (parenthesized_expression "(0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))" (( "(") (binary_expression "0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162)" (number_literal "0x3f") (< "<") (binary_expression "*(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162)" (pointer_expression "*(uint *)(puVar8 + 0x160)" (* "*") (cast_expression "(uint *)(puVar8 + 0x160)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x160)" (( "(") (binary_expression "puVar8 + 0x160" (identifier "puVar8") (+ "+") (number_literal "0x160")) () ")")))) (+ "+") (pointer_expression "*(uint *)(puVar8 + 0x162)" (* "*") (cast_expression "(uint *)(puVar8 + 0x162)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x162)" (( "(") (binary_expression "puVar8 + 0x162" (identifier "puVar8") (+ "+") (number_literal "0x162")) () ")")))))) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(0x3f < *(int *)(puVar8 + 0x10) - 1U)" (( "(") (binary_expression "0x3f < *(int *)(puVar8 + 0x10) - 1U" (number_literal "0x3f") (< "<") (binary_expression "*(int *)(puVar8 + 0x10) - 1U" (pointer_expression "*(int *)(puVar8 + 0x10)" (* "*") (cast_expression "(int *)(puVar8 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x10)" (( "(") (binary_expression "puVar8 + 0x10" (identifier "puVar8") (+ "+") (number_literal "0x10")) () ")")))) (- "-") (number_literal "1U"))) () ")"))) () ")")) (compound_statement "{\n          uVar48 = 0x31d;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\nLAB_002546ac:\n          local_30cc = param_1 + 0x1108;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);\n          iVar10 = 0;\n          param_1 = puVar9;\n          goto LAB_002546dc;\n        }" ({ "{") (expression_statement "uVar48 = 0x31d;" (assignment_expression "uVar48 = 0x31d" (identifier "uVar48") (= "=") (number_literal "0x31d")) (; ";")) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (identifier "puVar38") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x72a4")) () ")")))) (; ";")) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) () ")")))) (; ";")) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" (identifier "local_30d0") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0x3e28" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x3e28"))) (; ";")) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400)" (field_expression "local_30d8._4_4_" (identifier "local_30d8") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(ushort *)(PTR_s_courses_003a88ec + -400)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -400)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -400" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-400")) () ")")))) (; ";")) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" (identifier "local_30d8") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(ushort *)&DAT_000001a9" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000001a9" (& "&") (identifier "DAT_000001a9")))) (; ";")) (labeled_statement "LAB_002546ac:\n          local_30cc = param_1 + 0x1108;" (statement_identifier "LAB_002546ac") (: ":") (expression_statement "local_30cc = param_1 + 0x1108;" (assignment_expression "local_30cc = param_1 + 0x1108" (identifier "local_30cc") (= "=") (binary_expression "param_1 + 0x1108" (identifier "param_1") (+ "+") (number_literal "0x1108"))) (; ";"))) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" (( "(") (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" (* "*") (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ThrowMagickException_003a8f20"))) () ")")) (argument_list "(param_2,puVar50,puVar38,uVar48)" (( "(") (identifier "param_2") (, ",") (identifier "puVar50") (, ",") (identifier "puVar38") (, ",") (identifier "uVar48") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(puVar8);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(puVar8)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" (( "(") (pointer_expression "*(code *)PTR_CloseBlob_003a9688" (* "*") (cast_expression "(code *)PTR_CloseBlob_003a9688" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CloseBlob_003a9688"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_DestroyImageList_003a9510)(puVar8);" (call_expression "(*(code *)PTR_DestroyImageList_003a9510)(puVar8)" (parenthesized_expression "(*(code *)PTR_DestroyImageList_003a9510)" (( "(") (pointer_expression "*(code *)PTR_DestroyImageList_003a9510" (* "*") (cast_expression "(code *)PTR_DestroyImageList_003a9510" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyImageList_003a9510"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1 = puVar9;" (assignment_expression "param_1 = puVar9" (identifier "param_1") (= "=") (identifier "puVar9")) (; ";")) (goto_statement "goto LAB_002546dc;" (goto "goto") (statement_identifier "LAB_002546dc") (; ";")) (} "}"))) (expression_statement "iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);" (assignment_expression "iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0)" (identifier "iVar30") (= "=") (call_expression "(*(code *)PTR_GetMagickSignature_003a96ec)(0)" (parenthesized_expression "(*(code *)PTR_GetMagickSignature_003a96ec)" (( "(") (pointer_expression "*(code *)PTR_GetMagickSignature_003a96ec" (* "*") (cast_expression "(code *)PTR_GetMagickSignature_003a96ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetMagickSignature_003a96ec"))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar10 != iVar30) {\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }" (if "if") (parenthesized_expression "(iVar10 != iVar30)" (( "(") (binary_expression "iVar10 != iVar30" (identifier "iVar10") (!= "!=") (identifier "iVar30")) () ")")) (compound_statement "{\n          uVar48 = 0x323;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          goto LAB_002546ac;\n        }" ({ "{") (expression_statement "uVar48 = 0x323;" (assignment_expression "uVar48 = 0x323" (identifier "uVar48") (= "=") (number_literal "0x323")) (; ";")) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (identifier "puVar38") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x72a4")) () ")")))) (; ";")) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) () ")")))) (; ";")) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" (identifier "local_30d0") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0x3e28" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x3e28"))) (; ";")) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460)" (field_expression "local_30d8._4_4_" (identifier "local_30d8") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x7460")) () ")")))) (; ";")) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001bd;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001bd" (field_expression "local_30d8._0_4_" (identifier "local_30d8") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(ushort *)&DAT_000001bd" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000001bd" (& "&") (identifier "DAT_000001bd")))) (; ";")) (goto_statement "goto LAB_002546ac;" (goto "goto") (statement_identifier "LAB_002546ac") (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar8 + 0x102) != 0) {\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar8 + 0x102) != 0)" (( "(") (binary_expression "*(int *)(puVar8 + 0x102) != 0" (pointer_expression "*(int *)(puVar8 + 0x102)" (* "*") (cast_expression "(int *)(puVar8 + 0x102)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x102)" (( "(") (binary_expression "puVar8 + 0x102" (identifier "puVar8") (+ "+") (number_literal "0x102")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          unaff_s6 = (ushort *)0x0;\n          puVar14 = (ushort *)0x1000;\n          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);\n          *(ushort **)(puVar8 + 0x104) = puVar50;\n          do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);\n        }" ({ "{") (expression_statement "unaff_s6 = (ushort *)0x0;" (assignment_expression "unaff_s6 = (ushort *)0x0" (identifier "unaff_s6") (= "=") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar14 = (ushort *)0x1000;" (assignment_expression "puVar14 = (ushort *)0x1000" (identifier "puVar14") (= "=") (cast_expression "(ushort *)0x1000" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1000"))) (; ";")) (expression_statement "puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);" (assignment_expression "puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(*(code *)PTR_AcquireString_003a9814)(0)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_AcquireString_003a9814)(0)" (parenthesized_expression "(*(code *)PTR_AcquireString_003a9814)" (( "(") (pointer_expression "*(code *)PTR_AcquireString_003a9814" (* "*") (cast_expression "(code *)PTR_AcquireString_003a9814" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireString_003a9814"))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";")) (expression_statement "*(ushort **)(puVar8 + 0x104) = puVar50;" (assignment_expression "*(ushort **)(puVar8 + 0x104) = puVar50" (pointer_expression "*(ushort **)(puVar8 + 0x104)" (* "*") (cast_expression "(ushort **)(puVar8 + 0x104)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0x104)" (( "(") (binary_expression "puVar8 + 0x104" (identifier "puVar8") (+ "+") (number_literal "0x104")) () ")")))) (= "=") (identifier "puVar50")) (; ";")) (do_statement "do {\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          } while (iVar10 != 0);" (do "do") (compound_statement "{\n            *(byte *)puVar50 = 0;\n            puVar16 = puVar50;\n            if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }\n            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n            if (iVar10 == -1) break;\n            puVar50 = (ushort *)((int)puVar16 + 1);\n            *(byte *)puVar16 = (byte)iVar10;\n            unaff_s6 = (ushort *)((int)unaff_s6 + 1);\n            unaff_s4 = puVar16;\n            uVar69 = CONCAT44(puVar14,0xffffffff);\n          }" ({ "{") (expression_statement "*(byte *)puVar50 = 0;" (assignment_expression "*(byte *)puVar50 = 0" (pointer_expression "*(byte *)puVar50" (* "*") (cast_expression "(byte *)puVar50" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar50"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar16 = puVar50;" (assignment_expression "puVar16 = puVar50" (identifier "puVar16") (= "=") (identifier "puVar50")) (; ";")) (if_statement "if (puVar14 <= unaff_s6 + 0x800) {\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }" (if "if") (parenthesized_expression "(puVar14 <= unaff_s6 + 0x800)" (( "(") (binary_expression "puVar14 <= unaff_s6 + 0x800" (identifier "puVar14") (<= "<=") (binary_expression "unaff_s6 + 0x800" (identifier "unaff_s6") (+ "+") (number_literal "0x800"))) () ")")) (compound_statement "{\n              puVar14 = (ushort *)((int)puVar14 * 2);\n              uVar69 = CONCAT44(puVar14,0xffffffff);\n              puVar38 = (ushort *)0x1;\n              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);\n              *(int *)(puVar8 + 0x104) = iVar10;\n              if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }\n              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);\n            }" ({ "{") (expression_statement "puVar14 = (ushort *)((int)puVar14 * 2);" (assignment_expression "puVar14 = (ushort *)((int)puVar14 * 2)" (identifier "puVar14") (= "=") (cast_expression "(ushort *)((int)puVar14 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 * 2)" (( "(") (binary_expression "(int)puVar14 * 2" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (* "*") (number_literal "2")) () ")")))) (; ";")) (expression_statement "uVar69 = CONCAT44(puVar14,0xffffffff);" (assignment_expression "uVar69 = CONCAT44(puVar14,0xffffffff)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(puVar14,0xffffffff)" (identifier "CONCAT44") (argument_list "(puVar14,0xffffffff)" (( "(") (identifier "puVar14") (, ",") (number_literal "0xffffffff") () ")")))) (; ";")) (expression_statement "puVar38 = (ushort *)0x1;" (assignment_expression "puVar38 = (ushort *)0x1" (identifier "puVar38") (= "=") (cast_expression "(ushort *)0x1" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);" (assignment_expression "iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_ResizeQuantumMemory_003a9420)\n                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800)" (parenthesized_expression "(*(code *)PTR_ResizeQuantumMemory_003a9420)" (( "(") (pointer_expression "*(code *)PTR_ResizeQuantumMemory_003a9420" (* "*") (cast_expression "(code *)PTR_ResizeQuantumMemory_003a9420" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ResizeQuantumMemory_003a9420"))) () ")")) (argument_list "(*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800)" (( "(") (pointer_expression "*(undefined4 *)(puVar8 + 0x104)" (* "*") (cast_expression "(undefined4 *)(puVar8 + 0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x104)" (( "(") (binary_expression "puVar8 + 0x104" (identifier "puVar8") (+ "+") (number_literal "0x104")) () ")")))) (, ",") (binary_expression "puVar14 + 0x800" (identifier "puVar14") (+ "+") (number_literal "0x800")) () ")")))) (; ";")) (expression_statement "*(int *)(puVar8 + 0x104) = iVar10;" (assignment_expression "*(int *)(puVar8 + 0x104) = iVar10" (pointer_expression "*(int *)(puVar8 + 0x104)" (* "*") (cast_expression "(int *)(puVar8 + 0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x104)" (( "(") (binary_expression "puVar8 + 0x104" (identifier "puVar8") (+ "+") (number_literal "0x104")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (iVar10 == 0) {\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar48 = 0x341;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                goto LAB_002546ac;\n              }" ({ "{") (expression_statement "uVar48 = 0x341;" (assignment_expression "uVar48 = 0x341" (identifier "uVar48") (= "=") (number_literal "0x341")) (; ";")) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (identifier "puVar38") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x72a4")) () ")")))) (; ";")) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) () ")")))) (; ";")) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" (identifier "local_30d0") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0x3e28" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x3e28"))) (; ";")) (expression_statement "local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);" (assignment_expression "local_30d8._4_4_ =\n                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc)" (field_expression "local_30d8._4_4_" (identifier "local_30d8") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x18cc")) () ")")))) (; ";")) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" (identifier "local_30d8") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(ushort *)&DAT_000001a9" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000001a9" (& "&") (identifier "DAT_000001a9")))) (; ";")) (goto_statement "goto LAB_002546ac;" (goto "goto") (statement_identifier "LAB_002546ac") (; ";")) (} "}"))) (expression_statement "puVar16 = (ushort *)(iVar10 + (int)unaff_s6);" (assignment_expression "puVar16 = (ushort *)(iVar10 + (int)unaff_s6)" (identifier "puVar16") (= "=") (cast_expression "(ushort *)(iVar10 + (int)unaff_s6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + (int)unaff_s6)" (( "(") (binary_expression "iVar10 + (int)unaff_s6" (identifier "iVar10") (+ "+") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6"))) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")")))) (; ";")) (expression_statement "uVar69 = CONCAT44(puVar14,0xffffffff);" (assignment_expression "uVar69 = CONCAT44(puVar14,0xffffffff)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(puVar14,0xffffffff)" (identifier "CONCAT44") (argument_list "(puVar14,0xffffffff)" (( "(") (identifier "puVar14") (, ",") (number_literal "0xffffffff") () ")")))) (; ";")) (if_statement "if (iVar10 == -1) break;" (if "if") (parenthesized_expression "(iVar10 == -1)" (( "(") (binary_expression "iVar10 == -1" (identifier "iVar10") (== "==") (number_literal "-1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar50 = (ushort *)((int)puVar16 + 1);" (assignment_expression "puVar50 = (ushort *)((int)puVar16 + 1)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)((int)puVar16 + 1)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar16 + 1)" (( "(") (binary_expression "(int)puVar16 + 1" (cast_expression "(int)puVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar16")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(byte *)puVar16 = (byte)iVar10;" (assignment_expression "*(byte *)puVar16 = (byte)iVar10" (pointer_expression "*(byte *)puVar16" (* "*") (cast_expression "(byte *)puVar16" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar16"))) (= "=") (cast_expression "(byte)iVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar10"))) (; ";")) (expression_statement "unaff_s6 = (ushort *)((int)unaff_s6 + 1);" (assignment_expression "unaff_s6 = (ushort *)((int)unaff_s6 + 1)" (identifier "unaff_s6") (= "=") (cast_expression "(ushort *)((int)unaff_s6 + 1)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s6 + 1)" (( "(") (binary_expression "(int)unaff_s6 + 1" (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "unaff_s4 = puVar16;" (assignment_expression "unaff_s4 = puVar16" (identifier "unaff_s4") (= "=") (identifier "puVar16")) (; ";")) (expression_statement "uVar69 = CONCAT44(puVar14,0xffffffff);" (assignment_expression "uVar69 = CONCAT44(puVar14,0xffffffff)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(puVar14,0xffffffff)" (identifier "CONCAT44") (argument_list "(puVar14,0xffffffff)" (( "(") (identifier "puVar14") (, ",") (number_literal "0xffffffff") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "puVar50 = (ushort *)0x0;" (assignment_expression "puVar50 = (ushort *)0x0" (identifier "puVar50") (= "=") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);" (assignment_expression "unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8)" (identifier "unaff_s4") (= "=") (cast_expression "(ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8)" (parenthesized_expression "(*(code *)PTR_GetImageQuantumDepth_003a91e8)" (( "(") (pointer_expression "*(code *)PTR_GetImageQuantumDepth_003a91e8" (* "*") (cast_expression "(code *)PTR_GetImageQuantumDepth_003a91e8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetImageQuantumDepth_003a91e8"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";")) (if_statement "if (*(int *)puVar8 == 2) {\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }" (if "if") (parenthesized_expression "(*(int *)puVar8 == 2)" (( "(") (binary_expression "*(int *)puVar8 == 2" (pointer_expression "*(int *)puVar8" (* "*") (cast_expression "(int *)puVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar8"))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          iVar10 = *(int *)(puVar8 + 0x12);\n          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);\n          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;\n          uVar36 = uVar13 * iVar10;\n          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }\n          puVar50 = (ushort *)0x58;\n          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);\n          *(int *)(puVar8 + 0x14) = iVar10;\n          if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }\n          uVar69 = CONCAT44(uVar13,uVar36);\n          if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }\n        }" ({ "{") (expression_statement "iVar10 = *(int *)(puVar8 + 0x12);" (assignment_expression "iVar10 = *(int *)(puVar8 + 0x12)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar8 + 0x12)" (* "*") (cast_expression "(int *)(puVar8 + 0x12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x12)" (( "(") (binary_expression "puVar8 + 0x12" (identifier "puVar8") (+ "+") (number_literal "0x12")) () ")"))))) (; ";")) (expression_statement "uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);" (assignment_expression "uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8)" (identifier "uVar69") (= "=") (call_expression "(*(code *)PTR_GetBlobSize_003a94b8)(puVar8)" (parenthesized_expression "(*(code *)PTR_GetBlobSize_003a94b8)" (( "(") (pointer_expression "*(code *)PTR_GetBlobSize_003a94b8" (* "*") (cast_expression "(code *)PTR_GetBlobSize_003a94b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetBlobSize_003a94b8"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")")))) (; ";")) (expression_statement "uVar13 = (uint)((int)unaff_s4 * 3) >> 3;" (assignment_expression "uVar13 = (uint)((int)unaff_s4 * 3) >> 3" (identifier "uVar13") (= "=") (binary_expression "(uint)((int)unaff_s4 * 3) >> 3" (call_expression "(uint)((int)unaff_s4 * 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)unaff_s4 * 3)" (( "(") (binary_expression "(int)unaff_s4 * 3" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (* "*") (number_literal "3")) () ")"))) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "uVar36 = uVar13 * iVar10;" (assignment_expression "uVar36 = uVar13 * iVar10" (identifier "uVar36") (= "=") (binary_expression "uVar13 * iVar10" (identifier "uVar13") (* "*") (identifier "iVar10"))) (; ";")) (if_statement "if ((int)((ulonglong)uVar69 >> 0x20) == 0) {\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }" (if "if") (parenthesized_expression "((int)((ulonglong)uVar69 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar69 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar69 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar69 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar69 >> 0x20" (cast_expression "(ulonglong)uVar69" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar69")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar36 = (uint)((uint)uVar69 < uVar36);\n            uVar69 = CONCAT44(uVar13,uVar36);\n            if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n          }" ({ "{") (expression_statement "uVar36 = (uint)((uint)uVar69 < uVar36);" (assignment_expression "uVar36 = (uint)((uint)uVar69 < uVar36)" (identifier "uVar36") (= "=") (call_expression "(uint)((uint)uVar69 < uVar36)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)uVar69 < uVar36)" (( "(") (binary_expression "(uint)uVar69 < uVar36" (cast_expression "(uint)uVar69" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar69")) (< "<") (identifier "uVar36")) () ")")))) (; ";")) (expression_statement "uVar69 = CONCAT44(uVar13,uVar36);" (assignment_expression "uVar69 = CONCAT44(uVar13,uVar36)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(uVar13,uVar36)" (identifier "CONCAT44") (argument_list "(uVar13,uVar36)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar36") () ")")))) (; ";")) (if_statement "if (uVar36 != 0) {\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" (if "if") (parenthesized_expression "(uVar36 != 0)" (( "(") (binary_expression "uVar36 != 0" (identifier "uVar36") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar48 = 0x37d;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" ({ "{") (expression_statement "uVar48 = 0x37d;" (assignment_expression "uVar48 = 0x37d" (identifier "uVar48") (= "=") (number_literal "0x37d")) (; ";")) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (identifier "puVar38") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x72a4")) () ")")))) (; ";")) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) () ")")))) (; ";")) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" (identifier "local_30d0") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0x3e28" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x3e28"))) (; ";")) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0)" (field_expression "local_30d8._4_4_" (identifier "local_30d8") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(ushort *)(PTR_s_courses_003a88ec + 0x4a0)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + 0x4a0)" (( "(") (binary_expression "PTR_s_courses_003a88ec + 0x4a0" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "0x4a0")) () ")")))) (; ";")) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" (identifier "local_30d8") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(ushort *)&DAT_000001a9" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000001a9" (& "&") (identifier "DAT_000001a9")))) (; ";")) (goto_statement "goto LAB_002546ac;" (goto "goto") (statement_identifier "LAB_002546ac") (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar50 = (ushort *)0x58;" (assignment_expression "puVar50 = (ushort *)0x58" (identifier "puVar50") (= "=") (cast_expression "(ushort *)0x58" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x58"))) (; ";")) (expression_statement "iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);" (assignment_expression "iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" (( "(") (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" (* "*") (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireQuantumMemory_003a950c"))) () ")")) (argument_list "(*(int *)(puVar8 + 0x12) + 1)" (( "(") (binary_expression "*(int *)(puVar8 + 0x12) + 1" (pointer_expression "*(int *)(puVar8 + 0x12)" (* "*") (cast_expression "(int *)(puVar8 + 0x12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x12)" (( "(") (binary_expression "puVar8 + 0x12" (identifier "puVar8") (+ "+") (number_literal "0x12")) () ")")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(int *)(puVar8 + 0x14) = iVar10;" (assignment_expression "*(int *)(puVar8 + 0x14) = iVar10" (pointer_expression "*(int *)(puVar8 + 0x14)" (* "*") (cast_expression "(int *)(puVar8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x14)" (( "(") (binary_expression "puVar8 + 0x14" (identifier "puVar8") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (iVar10 == 0) {\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar48 = 0x381;\nLAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);\n            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);\n            local_30d8._0_4_ = (ushort *)0x190;\n            unaff_s8 = puVar11;\n            goto LAB_002546ac;\n          }" ({ "{") (expression_statement "uVar48 = 0x381;" (assignment_expression "uVar48 = 0x381" (identifier "uVar48") (= "=") (number_literal "0x381")) (; ";")) (labeled_statement "LAB_00254850:\n            uVar69 = CONCAT44(uVar13,uVar36);" (statement_identifier "LAB_00254850") (: ":") (expression_statement "uVar69 = CONCAT44(uVar13,uVar36);" (assignment_expression "uVar69 = CONCAT44(uVar13,uVar36)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(uVar13,uVar36)" (identifier "CONCAT44") (argument_list "(uVar13,uVar36)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar36") () ")")))) (; ";"))) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" (identifier "local_30d0") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0x3e28" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x3e28"))) (; ";")) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (identifier "puVar38") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x72a4")) () ")")))) (; ";")) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) () ")")))) (; ";")) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8)" (field_expression "local_30d8._4_4_" (identifier "local_30d8") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(ushort *)(PTR_LAB_003a88e0 + 0x16f8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x16f8)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x16f8" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x16f8")) () ")")))) (; ";")) (expression_statement "local_30d8._0_4_ = (ushort *)0x190;" (assignment_expression "local_30d8._0_4_ = (ushort *)0x190" (field_expression "local_30d8._0_4_" (identifier "local_30d8") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(ushort *)0x190" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x190"))) (; ";")) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" (identifier "unaff_s8") (= "=") (identifier "puVar11")) (; ";")) (goto_statement "goto LAB_002546ac;" (goto "goto") (statement_identifier "LAB_002546ac") (; ";")) (} "}"))) (expression_statement "uVar69 = CONCAT44(uVar13,uVar36);" (assignment_expression "uVar69 = CONCAT44(uVar13,uVar36)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(uVar13,uVar36)" (identifier "CONCAT44") (argument_list "(uVar13,uVar36)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar36") () ")")))) (; ";")) (if_statement "if (*(int *)(puVar8 + 0x12) != 0) {\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }" (if "if") (parenthesized_expression "(*(int *)(puVar8 + 0x12) != 0)" (( "(") (binary_expression "*(int *)(puVar8 + 0x12) != 0" (pointer_expression "*(int *)(puVar8 + 0x12)" (* "*") (cast_expression "(int *)(puVar8 + 0x12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x12)" (( "(") (binary_expression "puVar8 + 0x12" (identifier "puVar8") (+ "+") (number_literal "0x12")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);\n            if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }\n            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));\n            puVar38 = puVar14;\n            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);\n            iVar30 = *(int *)(puVar8 + 0x12);\n            iVar12 = iVar30 * uVar13;\n            uVar69 = CONCAT44(iVar12,puVar14);\n            if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }\n            if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }\n            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n            uVar69 = CONCAT44(iVar12,puVar14);\n          }" ({ "{") (expression_statement "puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);" (assignment_expression "puVar14 = (ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13)" (identifier "puVar14") (= "=") (cast_expression "(ushort *)\n                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_003a950c)" (( "(") (pointer_expression "*(code *)PTR_AcquireQuantumMemory_003a950c" (* "*") (cast_expression "(code *)PTR_AcquireQuantumMemory_003a950c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireQuantumMemory_003a950c"))) () ")")) (argument_list "(*(int *)(puVar8 + 0x12),uVar13)" (( "(") (pointer_expression "*(int *)(puVar8 + 0x12)" (* "*") (cast_expression "(int *)(puVar8 + 0x12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x12)" (( "(") (binary_expression "puVar8 + 0x12" (identifier "puVar8") (+ "+") (number_literal "0x12")) () ")")))) (, ",") (identifier "uVar13") () ")"))))) (; ";")) (if_statement "if (puVar14 == (ushort *)0x0) {\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }" (if "if") (parenthesized_expression "(puVar14 == (ushort *)0x0)" (( "(") (binary_expression "puVar14 == (ushort *)0x0" (identifier "puVar14") (== "==") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar48 = 0x38a;\n              uVar36 = 0;\n              goto LAB_00254850;\n            }" ({ "{") (expression_statement "uVar48 = 0x38a;" (assignment_expression "uVar48 = 0x38a" (identifier "uVar48") (= "=") (number_literal "0x38a")) (; ";")) (expression_statement "uVar36 = 0;" (assignment_expression "uVar36 = 0" (identifier "uVar36") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00254850;" (goto "goto") (statement_identifier "LAB_00254850") (; ";")) (} "}"))) (expression_statement "puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));" (assignment_expression "puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12))" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(uVar13 * *(int *)(puVar8 + 0x12))" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar13 * *(int *)(puVar8 + 0x12))" (( "(") (binary_expression "uVar13 * *(int *)(puVar8 + 0x12)" (identifier "uVar13") (* "*") (pointer_expression "*(int *)(puVar8 + 0x12)" (* "*") (cast_expression "(int *)(puVar8 + 0x12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x12)" (( "(") (binary_expression "puVar8 + 0x12" (identifier "puVar8") (+ "+") (number_literal "0x12")) () ")"))))) () ")")))) (; ";")) (expression_statement "puVar38 = puVar14;" (assignment_expression "puVar38 = puVar14" (identifier "puVar38") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_ReadBlob_003a8dac)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlob_003a8dac)" (( "(") (pointer_expression "*(code *)PTR_ReadBlob_003a8dac" (* "*") (cast_expression "(code *)PTR_ReadBlob_003a8dac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlob_003a8dac"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")")))) (; ";")) (expression_statement "iVar30 = *(int *)(puVar8 + 0x12);" (assignment_expression "iVar30 = *(int *)(puVar8 + 0x12)" (identifier "iVar30") (= "=") (pointer_expression "*(int *)(puVar8 + 0x12)" (* "*") (cast_expression "(int *)(puVar8 + 0x12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x12)" (( "(") (binary_expression "puVar8 + 0x12" (identifier "puVar8") (+ "+") (number_literal "0x12")) () ")"))))) (; ";")) (expression_statement "iVar12 = iVar30 * uVar13;" (assignment_expression "iVar12 = iVar30 * uVar13" (identifier "iVar12") (= "=") (binary_expression "iVar30 * uVar13" (identifier "iVar30") (* "*") (identifier "uVar13"))) (; ";")) (expression_statement "uVar69 = CONCAT44(iVar12,puVar14);" (assignment_expression "uVar69 = CONCAT44(iVar12,puVar14)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(iVar12,puVar14)" (identifier "CONCAT44") (argument_list "(iVar12,puVar14)" (( "(") (identifier "iVar12") (, ",") (identifier "puVar14") () ")")))) (; ";")) (if_statement "if (iVar12 != iVar10) {\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" (if "if") (parenthesized_expression "(iVar12 != iVar10)" (( "(") (binary_expression "iVar12 != iVar10" (identifier "iVar12") (!= "!=") (identifier "iVar10")) () ")")) (compound_statement "{\n              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n              uVar48 = 0x390;\n              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);\n              local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n              goto LAB_002546ac;\n            }" ({ "{") (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" (( "(") (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" (* "*") (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_RelinquishMagickMemory_003a8fc0"))) () ")")) (argument_list "(puVar14)" (( "(") (identifier "puVar14") () ")"))) (; ";")) (expression_statement "uVar48 = 0x390;" (assignment_expression "uVar48 = 0x390" (identifier "uVar48") (= "=") (number_literal "0x390")) (; ";")) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" (identifier "local_30d0") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0x3e28" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x3e28"))) (; ";")) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (identifier "puVar38") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x72a4")) () ")")))) (; ";")) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) () ")")))) (; ";")) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0)" (field_expression "local_30d8._4_4_" (identifier "local_30d8") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(ushort *)(PTR_s_courses_003a88ec + 0x4a0)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + 0x4a0)" (( "(") (binary_expression "PTR_s_courses_003a88ec + 0x4a0" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "0x4a0")) () ")")))) (; ";")) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" (identifier "local_30d8") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(ushort *)&DAT_000001a9" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000001a9" (& "&") (identifier "DAT_000001a9")))) (; ";")) (goto_statement "goto LAB_002546ac;" (goto "goto") (statement_identifier "LAB_002546ac") (; ";")) (} "}"))) (if_statement "if (unaff_s4 == (ushort *)0x10) {\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }\n            else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }" (if "if") (parenthesized_expression "(unaff_s4 == (ushort *)0x10)" (( "(") (binary_expression "unaff_s4 == (ushort *)0x10" (identifier "unaff_s4") (== "==") (cast_expression "(ushort *)0x10" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10"))) () ")")) (compound_statement "{\n              if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }\n            }" ({ "{") (if_statement "if (0 < iVar30) {\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }" (if "if") (parenthesized_expression "(0 < iVar30)" (( "(") (binary_expression "0 < iVar30" (number_literal "0") (< "<") (identifier "iVar30")) () ")")) (compound_statement "{\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);\n              }" ({ "{") (expression_statement "puVar16 = puVar14;" (assignment_expression "puVar16 = puVar14" (identifier "puVar16") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);" (assignment_expression "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28)" (identifier "pdVar15") (= "=") (cast_expression "(double *)(*(int *)(puVar8 + 0x14) + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar8 + 0x14) + 0x28)" (( "(") (binary_expression "*(int *)(puVar8 + 0x14) + 0x28" (pointer_expression "*(int *)(puVar8 + 0x14)" (* "*") (cast_expression "(int *)(puVar8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x14)" (( "(") (binary_expression "puVar8 + 0x14" (identifier "puVar8") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (; ";")) (do_statement "do {\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar33 != puVar14 + iVar30 * 3);" (do "do") (compound_statement "{\n                  puVar33 = puVar16 + 3;\n                  *pdVar15 = (double)*puVar16;\n                  pdVar15[1] = (double)puVar16[1];\n                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);\n                  puVar50 = (ushort *)(uint)puVar16[2];\n                  pdVar15[2] = (double)(int)puVar50;\n                  puVar16 = puVar33;\n                  pdVar15 = pdVar15 + 0xb;\n                }" ({ "{") (expression_statement "puVar33 = puVar16 + 3;" (assignment_expression "puVar33 = puVar16 + 3" (identifier "puVar33") (= "=") (binary_expression "puVar16 + 3" (identifier "puVar16") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "*pdVar15 = (double)*puVar16;" (assignment_expression "*pdVar15 = (double)*puVar16" (pointer_expression "*pdVar15" (* "*") (identifier "pdVar15")) (= "=") (cast_expression "(double)*puVar16" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*puVar16" (* "*") (identifier "puVar16")))) (; ";")) (expression_statement "pdVar15[1] = (double)puVar16[1];" (assignment_expression "pdVar15[1] = (double)puVar16[1]" (subscript_expression "pdVar15[1]" (identifier "pdVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(double)puVar16[1]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "puVar16[1]" (identifier "puVar16") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);" (assignment_expression "puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8)" (identifier "puVar38") (= "=") (cast_expression "(ushort *)((uint)*(byte *)(puVar16 + 2) << 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)*(byte *)(puVar16 + 2) << 8)" (( "(") (binary_expression "(uint)*(byte *)(puVar16 + 2) << 8" (binary_expression "(uint)*(byte *)(puVar16 + 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(puVar16 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + 2)" (( "(") (binary_expression "puVar16 + 2" (identifier "puVar16") (+ "+") (number_literal "2")) () ")")))) (<< "<<") (number_literal "8")) () ")")))) (; ";")) (expression_statement "puVar50 = (ushort *)(uint)puVar16[2];" (assignment_expression "puVar50 = (ushort *)(uint)puVar16[2]" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(uint)puVar16[2]" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)puVar16[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar16[2]" (identifier "puVar16") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (expression_statement "pdVar15[2] = (double)(int)puVar50;" (assignment_expression "pdVar15[2] = (double)(int)puVar50" (subscript_expression "pdVar15[2]" (identifier "pdVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(double)(int)puVar50" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar50")))) (; ";")) (expression_statement "puVar16 = puVar33;" (assignment_expression "puVar16 = puVar33" (identifier "puVar16") (= "=") (identifier "puVar33")) (; ";")) (expression_statement "pdVar15 = pdVar15 + 0xb;" (assignment_expression "pdVar15 = pdVar15 + 0xb" (identifier "pdVar15") (= "=") (binary_expression "pdVar15 + 0xb" (identifier "pdVar15") (+ "+") (number_literal "0xb"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar33 != puVar14 + iVar30 * 3)" (( "(") (binary_expression "puVar33 != puVar14 + iVar30 * 3" (identifier "puVar33") (!= "!=") (binary_expression "puVar14 + iVar30 * 3" (identifier "puVar14") (+ "+") (binary_expression "iVar30 * 3" (identifier "iVar30") (* "*") (number_literal "3")))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }" (else "else") (if_statement "if (unaff_s4 == (ushort *)0x20) {\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }\n            else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }" (if "if") (parenthesized_expression "(unaff_s4 == (ushort *)0x20)" (( "(") (binary_expression "unaff_s4 == (ushort *)0x20" (identifier "unaff_s4") (== "==") (cast_expression "(ushort *)0x20" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x20"))) () ")")) (compound_statement "{\n              if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }\n            }" ({ "{") (if_statement "if (0 < iVar30) {\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }" (if "if") (parenthesized_expression "(0 < iVar30)" (( "(") (binary_expression "0 < iVar30" (number_literal "0") (< "<") (identifier "iVar30")) () ")")) (compound_statement "{\n                dVar67 = *(double *)(puVar4 + 0x1418);\n                dVar66 = *(double *)(puVar5 + -0x5b00);\n                puVar16 = puVar14;\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);\n              }" ({ "{") (expression_statement "dVar67 = *(double *)(puVar4 + 0x1418);" (assignment_expression "dVar67 = *(double *)(puVar4 + 0x1418)" (identifier "dVar67") (= "=") (pointer_expression "*(double *)(puVar4 + 0x1418)" (* "*") (cast_expression "(double *)(puVar4 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 0x1418)" (( "(") (binary_expression "puVar4 + 0x1418" (identifier "puVar4") (+ "+") (number_literal "0x1418")) () ")"))))) (; ";")) (expression_statement "dVar66 = *(double *)(puVar5 + -0x5b00);" (assignment_expression "dVar66 = *(double *)(puVar5 + -0x5b00)" (identifier "dVar66") (= "=") (pointer_expression "*(double *)(puVar5 + -0x5b00)" (* "*") (cast_expression "(double *)(puVar5 + -0x5b00)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + -0x5b00)" (( "(") (binary_expression "puVar5 + -0x5b00" (identifier "puVar5") (+ "+") (number_literal "-0x5b00")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar14;" (assignment_expression "puVar16 = puVar14" (identifier "puVar16") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);" (assignment_expression "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28)" (identifier "pdVar15") (= "=") (cast_expression "(double *)(*(int *)(puVar8 + 0x14) + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar8 + 0x14) + 0x28)" (( "(") (binary_expression "*(int *)(puVar8 + 0x14) + 0x28" (pointer_expression "*(int *)(puVar8 + 0x14)" (* "*") (cast_expression "(int *)(puVar8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x14)" (( "(") (binary_expression "puVar8 + 0x14" (identifier "puVar8") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (; ";")) (do_statement "do {\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                } while (puVar38 + 6 != puVar14 + iVar30 * 6);" (do "do") (compound_statement "{\n                  puVar38 = puVar16;\n                  dVar68 = (double)*(int *)puVar38;\n                  if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);\n                  dVar68 = (double)*(int *)(puVar38 + 2);\n                  if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }\n                  pdVar15[1] = (double)(float)(dVar68 / dVar66);\n                  puVar50 = *(ushort **)(puVar38 + 4);\n                  dVar68 = (double)(int)puVar50;\n                  if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }\n                  pdVar15[2] = (double)(float)(dVar68 / dVar66);\n                  puVar16 = puVar38 + 6;\n                  pdVar15 = pdVar15 + 0xb;\n                }" ({ "{") (expression_statement "puVar38 = puVar16;" (assignment_expression "puVar38 = puVar16" (identifier "puVar38") (= "=") (identifier "puVar16")) (; ";")) (expression_statement "dVar68 = (double)*(int *)puVar38;" (assignment_expression "dVar68 = (double)*(int *)puVar38" (identifier "dVar68") (= "=") (cast_expression "(double)*(int *)puVar38" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)puVar38" (* "*") (cast_expression "(int *)puVar38" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar38"))))) (; ";")) (if_statement "if (*(int *)puVar38 < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }" (if "if") (parenthesized_expression "(*(int *)puVar38 < 0)" (( "(") (binary_expression "*(int *)puVar38 < 0" (pointer_expression "*(int *)puVar38" (* "*") (cast_expression "(int *)puVar38" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar38"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    dVar68 = dVar68 + dVar67;\n                  }" ({ "{") (expression_statement "dVar68 = dVar68 + dVar67;" (assignment_expression "dVar68 = dVar68 + dVar67" (identifier "dVar68") (= "=") (binary_expression "dVar68 + dVar67" (identifier "dVar68") (+ "+") (identifier "dVar67"))) (; ";")) (} "}"))) (expression_statement "*pdVar15 = (double)(float)(dVar68 / in_f24_25);" (assignment_expression "*pdVar15 = (double)(float)(dVar68 / in_f24_25)" (pointer_expression "*pdVar15" (* "*") (identifier "pdVar15")) (= "=") (cast_expression "(double)(float)(dVar68 / in_f24_25)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(float)(dVar68 / in_f24_25)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(dVar68 / in_f24_25)" (( "(") (binary_expression "dVar68 / in_f24_25" (identifier "dVar68") (/ "/") (identifier "in_f24_25")) () ")"))))) (; ";")) (expression_statement "dVar68 = (double)*(int *)(puVar38 + 2);" (assignment_expression "dVar68 = (double)*(int *)(puVar38 + 2)" (identifier "dVar68") (= "=") (cast_expression "(double)*(int *)(puVar38 + 2)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(puVar38 + 2)" (* "*") (cast_expression "(int *)(puVar38 + 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 2)" (( "(") (binary_expression "puVar38 + 2" (identifier "puVar38") (+ "+") (number_literal "2")) () ")")))))) (; ";")) (if_statement "if (*(int *)(puVar38 + 2) < 0) {\n                    dVar68 = dVar68 + dVar67;\n                  }" (if "if") (parenthesized_expression "(*(int *)(puVar38 + 2) < 0)" (( "(") (binary_expression "*(int *)(puVar38 + 2) < 0" (pointer_expression "*(int *)(puVar38 + 2)" (* "*") (cast_expression "(int *)(puVar38 + 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 2)" (( "(") (binary_expression "puVar38 + 2" (identifier "puVar38") (+ "+") (number_literal "2")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    dVar68 = dVar68 + dVar67;\n                  }" ({ "{") (expression_statement "dVar68 = dVar68 + dVar67;" (assignment_expression "dVar68 = dVar68 + dVar67" (identifier "dVar68") (= "=") (binary_expression "dVar68 + dVar67" (identifier "dVar68") (+ "+") (identifier "dVar67"))) (; ";")) (} "}"))) (expression_statement "pdVar15[1] = (double)(float)(dVar68 / dVar66);" (assignment_expression "pdVar15[1] = (double)(float)(dVar68 / dVar66)" (subscript_expression "pdVar15[1]" (identifier "pdVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(double)(float)(dVar68 / dVar66)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(float)(dVar68 / dVar66)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(dVar68 / dVar66)" (( "(") (binary_expression "dVar68 / dVar66" (identifier "dVar68") (/ "/") (identifier "dVar66")) () ")"))))) (; ";")) (expression_statement "puVar50 = *(ushort **)(puVar38 + 4);" (assignment_expression "puVar50 = *(ushort **)(puVar38 + 4)" (identifier "puVar50") (= "=") (pointer_expression "*(ushort **)(puVar38 + 4)" (* "*") (cast_expression "(ushort **)(puVar38 + 4)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 4)" (( "(") (binary_expression "puVar38 + 4" (identifier "puVar38") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "dVar68 = (double)(int)puVar50;" (assignment_expression "dVar68 = (double)(int)puVar50" (identifier "dVar68") (= "=") (cast_expression "(double)(int)puVar50" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar50")))) (; ";")) (if_statement "if ((int)puVar50 < 0) {\n                    dVar68 = dVar68 + in_f22_23;\n                  }" (if "if") (parenthesized_expression "((int)puVar50 < 0)" (( "(") (binary_expression "(int)puVar50 < 0" (cast_expression "(int)puVar50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar50")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    dVar68 = dVar68 + in_f22_23;\n                  }" ({ "{") (expression_statement "dVar68 = dVar68 + in_f22_23;" (assignment_expression "dVar68 = dVar68 + in_f22_23" (identifier "dVar68") (= "=") (binary_expression "dVar68 + in_f22_23" (identifier "dVar68") (+ "+") (identifier "in_f22_23"))) (; ";")) (} "}"))) (expression_statement "pdVar15[2] = (double)(float)(dVar68 / dVar66);" (assignment_expression "pdVar15[2] = (double)(float)(dVar68 / dVar66)" (subscript_expression "pdVar15[2]" (identifier "pdVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(double)(float)(dVar68 / dVar66)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(float)(dVar68 / dVar66)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(dVar68 / dVar66)" (( "(") (binary_expression "dVar68 / dVar66" (identifier "dVar68") (/ "/") (identifier "dVar66")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar38 + 6;" (assignment_expression "puVar16 = puVar38 + 6" (identifier "puVar16") (= "=") (binary_expression "puVar38 + 6" (identifier "puVar38") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "pdVar15 = pdVar15 + 0xb;" (assignment_expression "pdVar15 = pdVar15 + 0xb" (identifier "pdVar15") (= "=") (binary_expression "pdVar15 + 0xb" (identifier "pdVar15") (+ "+") (number_literal "0xb"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar38 + 6 != puVar14 + iVar30 * 6)" (( "(") (binary_expression "puVar38 + 6 != puVar14 + iVar30 * 6" (binary_expression "puVar38 + 6" (identifier "puVar38") (+ "+") (number_literal "6")) (!= "!=") (binary_expression "puVar14 + iVar30 * 6" (identifier "puVar14") (+ "+") (binary_expression "iVar30 * 6" (identifier "iVar30") (* "*") (number_literal "6")))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }" (else "else") (compound_statement "{\n              if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }\n              puVar50 = (ushort *)(iVar30 * 2);\n              if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }\n            }" ({ "{") (if_statement "if (unaff_s4 != (ushort *)&DAT_00000008) {\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }" (if "if") (parenthesized_expression "(unaff_s4 != (ushort *)&DAT_00000008)" (( "(") (binary_expression "unaff_s4 != (ushort *)&DAT_00000008" (identifier "unaff_s4") (!= "!=") (cast_expression "(ushort *)&DAT_00000008" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000008" (& "&") (identifier "DAT_00000008")))) () ")")) (compound_statement "{\n                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);\n                uVar48 = 0x398;\n                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);\n                local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n                uVar69 = CONCAT44(iVar12,puVar14);\n                goto LAB_002546ac;\n              }" ({ "{") (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" (( "(") (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" (* "*") (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_RelinquishMagickMemory_003a8fc0"))) () ")")) (argument_list "(puVar14)" (( "(") (identifier "puVar14") () ")"))) (; ";")) (expression_statement "uVar48 = 0x398;" (assignment_expression "uVar48 = 0x398" (identifier "uVar48") (= "=") (number_literal "0x398")) (; ";")) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" (identifier "local_30d0") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0x3e28" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x3e28"))) (; ";")) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (identifier "puVar38") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x72a4")) () ")")))) (; ";")) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) () ")")))) (; ";")) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8)" (field_expression "local_30d8._4_4_" (identifier "local_30d8") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x5aa8)" (( "(") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5aa8" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x5aa8")) () ")")))) (; ";")) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" (identifier "local_30d8") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(ushort *)&DAT_000001a9" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000001a9" (& "&") (identifier "DAT_000001a9")))) (; ";")) (expression_statement "uVar69 = CONCAT44(iVar12,puVar14);" (assignment_expression "uVar69 = CONCAT44(iVar12,puVar14)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(iVar12,puVar14)" (identifier "CONCAT44") (argument_list "(iVar12,puVar14)" (( "(") (identifier "iVar12") (, ",") (identifier "puVar14") () ")")))) (; ";")) (goto_statement "goto LAB_002546ac;" (goto "goto") (statement_identifier "LAB_002546ac") (; ";")) (} "}"))) (expression_statement "puVar50 = (ushort *)(iVar30 * 2);" (assignment_expression "puVar50 = (ushort *)(iVar30 * 2)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(iVar30 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 * 2)" (( "(") (binary_expression "iVar30 * 2" (identifier "iVar30") (* "*") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (0 < iVar30) {\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }" (if "if") (parenthesized_expression "(0 < iVar30)" (( "(") (binary_expression "0 < iVar30" (number_literal "0") (< "<") (identifier "iVar30")) () ")")) (compound_statement "{\n                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);\n                puVar16 = puVar14;\n                do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);\n              }" ({ "{") (expression_statement "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);" (assignment_expression "pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28)" (identifier "pdVar15") (= "=") (cast_expression "(double *)(*(int *)(puVar8 + 0x14) + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar8 + 0x14) + 0x28)" (( "(") (binary_expression "*(int *)(puVar8 + 0x14) + 0x28" (pointer_expression "*(int *)(puVar8 + 0x14)" (* "*") (cast_expression "(int *)(puVar8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x14)" (( "(") (binary_expression "puVar8 + 0x14" (identifier "puVar8") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "puVar16 = puVar14;" (assignment_expression "puVar16 = puVar14" (identifier "puVar16") (= "=") (identifier "puVar14")) (; ";")) (do_statement "do {\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);" (do "do") (compound_statement "{\n                  puVar33 = (ushort *)((int)puVar16 + 3);\n                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);\n                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);\n                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);\n                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);\n                  pdVar15 = pdVar15 + 0xb;\n                  puVar16 = puVar33;\n                }" ({ "{") (expression_statement "puVar33 = (ushort *)((int)puVar16 + 3);" (assignment_expression "puVar33 = (ushort *)((int)puVar16 + 3)" (identifier "puVar33") (= "=") (cast_expression "(ushort *)((int)puVar16 + 3)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar16 + 3)" (( "(") (binary_expression "(int)puVar16 + 3" (cast_expression "(int)puVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar16")) (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "*pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);" (assignment_expression "*pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21)" (pointer_expression "*pdVar15" (* "*") (identifier "pdVar15")) (= "=") (cast_expression "(double)(float)((double)*(byte *)puVar16 * in_f20_21)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(float)((double)*(byte *)puVar16 * in_f20_21)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)*(byte *)puVar16 * in_f20_21)" (( "(") (binary_expression "(double)*(byte *)puVar16 * in_f20_21" (cast_expression "(double)*(byte *)puVar16" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(byte *)puVar16" (* "*") (cast_expression "(byte *)puVar16" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar16")))) (* "*") (identifier "in_f20_21")) () ")"))))) (; ";")) (expression_statement "pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);" (assignment_expression "pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21)" (subscript_expression "pdVar15[1]" (identifier "pdVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(double)(float)((double)(byte)*puVar16 * in_f20_21)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(float)((double)(byte)*puVar16 * in_f20_21)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)(byte)*puVar16 * in_f20_21)" (( "(") (binary_expression "(double)(byte)*puVar16 * in_f20_21" (binary_expression "(double)(byte)*puVar16" (cast_expression "(double)(byte)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (identifier "puVar16")) (* "*") (identifier "in_f20_21")) () ")"))))) (; ";")) (expression_statement "puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);" (assignment_expression "puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1)" (identifier "puVar50") (= "=") (binary_expression "(ushort *)(uint)*(byte *)(puVar16 + 1)" (cast_expression "(ushort *)(uint)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(puVar16 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + 1)" (( "(") (binary_expression "puVar16 + 1" (identifier "puVar16") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);" (assignment_expression "pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21)" (subscript_expression "pdVar15[2]" (identifier "pdVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(double)(float)((double)(int)puVar50 * in_f20_21)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(float)((double)(int)puVar50 * in_f20_21)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)(int)puVar50 * in_f20_21)" (( "(") (binary_expression "(double)(int)puVar50 * in_f20_21" (cast_expression "(double)(int)puVar50" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar50"))) (* "*") (identifier "in_f20_21")) () ")"))))) (; ";")) (expression_statement "pdVar15 = pdVar15 + 0xb;" (assignment_expression "pdVar15 = pdVar15 + 0xb" (identifier "pdVar15") (= "=") (binary_expression "pdVar15 + 0xb" (identifier "pdVar15") (+ "+") (number_literal "0xb"))) (; ";")) (expression_statement "puVar16 = puVar33;" (assignment_expression "puVar16 = puVar33" (identifier "puVar16") (= "=") (identifier "puVar33")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((ushort *)((int)puVar14 + iVar30 * 3) != puVar33)" (( "(") (binary_expression "(ushort *)((int)puVar14 + iVar30 * 3) != puVar33" (cast_expression "(ushort *)((int)puVar14 + iVar30 * 3)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + iVar30 * 3)" (( "(") (binary_expression "(int)puVar14 + iVar30 * 3" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (binary_expression "iVar30 * 3" (identifier "iVar30") (* "*") (number_literal "3"))) () ")"))) (!= "!=") (identifier "puVar33")) () ")")) (; ";")) (} "}"))) (} "}")))))) (expression_statement "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);" (call_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_003a8fc0)" (( "(") (pointer_expression "*(code *)PTR_RelinquishMagickMemory_003a8fc0" (* "*") (cast_expression "(code *)PTR_RelinquishMagickMemory_003a8fc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_RelinquishMagickMemory_003a8fc0"))) () ")")) (argument_list "(puVar14)" (( "(") (identifier "puVar14") () ")"))) (; ";")) (expression_statement "uVar69 = CONCAT44(iVar12,puVar14);" (assignment_expression "uVar69 = CONCAT44(iVar12,puVar14)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(iVar12,puVar14)" (identifier "CONCAT44") (argument_list "(iVar12,puVar14)" (( "(") (identifier "iVar12") (, ",") (identifier "puVar14") () ")")))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);" (assignment_expression "uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20)" (identifier "uVar48") (= "=") (call_expression "(undefined4)((ulonglong)uVar69 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)uVar69 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar69 >> 0x20" (cast_expression "(ulonglong)uVar69" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar69")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar23 = (undefined4)uVar69;" (assignment_expression "uVar23 = (undefined4)uVar69" (identifier "uVar23") (= "=") (cast_expression "(undefined4)uVar69" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "uVar69"))) (; ";")) (if_statement "if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           ) {\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }" (if "if") (parenthesized_expression "(((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))\n           )" (( "(") (binary_expression "((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&\n           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))" (parenthesized_expression "((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0))" (( "(") (binary_expression "(*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)" (parenthesized_expression "(*(int *)(param_1 + 0xee) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0xee) != 0" (pointer_expression "*(int *)(param_1 + 0xee)" (* "*") (cast_expression "(int *)(param_1 + 0xee)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xee)" (( "(") (binary_expression "param_1 + 0xee" (identifier "param_1") (+ "+") (number_literal "0xee")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 0x16) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x16) != 0" (pointer_expression "*(int *)(param_1 + 0x16)" (* "*") (cast_expression "(int *)(param_1 + 0x16)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x16)" (( "(") (binary_expression "param_1 + 0x16" (identifier "param_1") (+ "+") (number_literal "0x16")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))" (( "(") (binary_expression "(*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136)" (binary_expression "(*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U" (parenthesized_expression "(*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14))" (( "(") (binary_expression "*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)" (pointer_expression "*(int *)(param_1 + 0x16)" (* "*") (cast_expression "(int *)(param_1 + 0x16)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x16)" (( "(") (binary_expression "param_1 + 0x16" (identifier "param_1") (+ "+") (number_literal "0x16")) () ")")))) (+ "+") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (- "-") (number_literal "1U")) (<= "<=") (pointer_expression "*(uint *)(puVar8 + 0x136)" (* "*") (cast_expression "(uint *)(puVar8 + 0x136)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x136)" (( "(") (binary_expression "puVar8 + 0x136" (identifier "puVar8") (+ "+") (number_literal "0x136")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          if (local_309c != 0) goto LAB_002548a8;\n          goto LAB_00253dbc;\n        }" ({ "{") (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(puVar8);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(puVar8)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" (( "(") (pointer_expression "*(code *)PTR_CloseBlob_003a9688" (* "*") (cast_expression "(code *)PTR_CloseBlob_003a9688" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CloseBlob_003a9688"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))) (; ";")) (if_statement "if (local_309c != 0) goto LAB_002548a8;" (if "if") (parenthesized_expression "(local_309c != 0)" (( "(") (binary_expression "local_309c != 0" (identifier "local_309c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_002548a8;" (goto "goto") (statement_identifier "LAB_002548a8") (; ";"))) (goto_statement "goto LAB_00253dbc;" (goto "goto") (statement_identifier "LAB_00253dbc") (; ";")) (} "}"))) (expression_statement "iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);" (assignment_expression "iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_AcquireMagickResource_003a981c)(10)" (parenthesized_expression "(*(code *)PTR_AcquireMagickResource_003a981c)" (( "(") (pointer_expression "*(code *)PTR_AcquireMagickResource_003a981c" (* "*") (cast_expression "(code *)PTR_AcquireMagickResource_003a981c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireMagickResource_003a981c"))) () ")")) (argument_list "(10)" (( "(") (number_literal "10") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_002550a8:\n          uVar48 = 0x3db;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);\n          local_30d8._0_4_ = (ushort *)0x1d1;\n          goto LAB_002546ac;\n        }" ({ "{") (labeled_statement "LAB_002550a8:\n          uVar48 = 0x3db;" (statement_identifier "LAB_002550a8") (: ":") (expression_statement "uVar48 = 0x3db;" (assignment_expression "uVar48 = 0x3db" (identifier "uVar48") (= "=") (number_literal "0x3db")) (; ";"))) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (identifier "puVar38") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x72a4")) () ")")))) (; ";")) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) () ")")))) (; ";")) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" (identifier "local_30d0") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0x3e28" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x3e28"))) (; ";")) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284)" (field_expression "local_30d8._4_4_" (identifier "local_30d8") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(ushort *)(PTR_LAB_003a88e0 + 0x1284)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1284)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1284" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1284")) () ")")))) (; ";")) (expression_statement "local_30d8._0_4_ = (ushort *)0x1d1;" (assignment_expression "local_30d8._0_4_ = (ushort *)0x1d1" (field_expression "local_30d8._0_4_" (identifier "local_30d8") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(ushort *)0x1d1" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1d1"))) (; ";")) (goto_statement "goto LAB_002546ac;" (goto "goto") (statement_identifier "LAB_002546ac") (; ";")) (} "}"))) (expression_statement "iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);" (assignment_expression "iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_AcquireMagickResource_003a981c)(4)" (parenthesized_expression "(*(code *)PTR_AcquireMagickResource_003a981c)" (( "(") (pointer_expression "*(code *)PTR_AcquireMagickResource_003a981c" (* "*") (cast_expression "(code *)PTR_AcquireMagickResource_003a981c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireMagickResource_003a981c"))) () ")")) (argument_list "(4)" (( "(") (number_literal "4") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) goto LAB_002550a8;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002550a8;" (goto "goto") (statement_identifier "LAB_002550a8") (; ";"))) (expression_statement "puVar38 = (ushort *)0x1;" (assignment_expression "puVar38 = (ushort *)0x1" (identifier "puVar38") (= "=") (cast_expression "(ushort *)0x1" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "puVar50 = auStack_3044;" (assignment_expression "puVar50 = auStack_3044" (identifier "puVar50") (= "=") (identifier "auStack_3044")) (; ";")) (expression_statement "local_30d8._0_4_ = param_2;" (assignment_expression "local_30d8._0_4_ = param_2" (field_expression "local_30d8._0_4_" (identifier "local_30d8") (. ".") (field_identifier "_0_4_")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);" (assignment_expression "iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078)" (parenthesized_expression "(*(code *)PTR_PersistPixelCache_003a8dc0)" (( "(") (pointer_expression "*(code *)PTR_PersistPixelCache_003a8dc0" (* "*") (cast_expression "(code *)PTR_PersistPixelCache_003a8dc0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_PersistPixelCache_003a8dc0"))) () ")")) (argument_list "(puVar8,auStack_3044,1,&local_3078)" (( "(") (identifier "puVar8") (, ",") (identifier "auStack_3044") (, ",") (number_literal "1") (, ",") (pointer_expression "&local_3078" (& "&") (identifier "local_3078")) () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);\n          uVar48 = 0x3e3;\n          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);\n          local_30d8._0_4_ = (ushort *)&DAT_000001bd;\n          puVar9 = param_2;\n          goto LAB_002546ac;\n        }" ({ "{") (expression_statement "(*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);" (call_expression "(*(code *)PTR_SetImageExtent_003a94ac)\n                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2)" (parenthesized_expression "(*(code *)PTR_SetImageExtent_003a94ac)" (( "(") (pointer_expression "*(code *)PTR_SetImageExtent_003a94ac" (* "*") (cast_expression "(code *)PTR_SetImageExtent_003a94ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SetImageExtent_003a94ac"))) () ")")) (argument_list "(puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2)" (( "(") (identifier "puVar8") (, ",") (pointer_expression "*(undefined4 *)(puVar8 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar8 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0xc)" (( "(") (binary_expression "puVar8 + 0xc" (identifier "puVar8") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(puVar8 + 0xe)" (* "*") (cast_expression "(undefined4 *)(puVar8 + 0xe)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0xe)" (( "(") (binary_expression "puVar8 + 0xe" (identifier "puVar8") (+ "+") (number_literal "0xe")) () ")")))) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "uVar48 = 0x3e3;" (assignment_expression "uVar48 = 0x3e3" (identifier "uVar48") (= "=") (number_literal "0x3e3")) (; ";")) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0x3e28;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0x3e28" (identifier "local_30d0") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0x3e28" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x3e28"))) (; ";")) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (identifier "puVar38") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x72a4")) () ")")))) (; ";")) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) () ")")))) (; ";")) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450)" (field_expression "local_30d8._4_4_" (identifier "local_30d8") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x7450")) () ")")))) (; ";")) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001bd;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001bd" (field_expression "local_30d8._0_4_" (identifier "local_30d8") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(ushort *)&DAT_000001bd" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000001bd" (& "&") (identifier "DAT_000001bd")))) (; ";")) (expression_statement "puVar9 = param_2;" (assignment_expression "puVar9 = param_2" (identifier "puVar9") (= "=") (identifier "param_2")) (; ";")) (goto_statement "goto LAB_002546ac;" (goto "goto") (statement_identifier "LAB_002546ac") (; ";")) (} "}"))) (expression_statement "iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_EOFBlob_003a9748)(puVar8)" (parenthesized_expression "(*(code *)PTR_EOFBlob_003a9748)" (( "(") (pointer_expression "*(code *)PTR_EOFBlob_003a9748" (* "*") (cast_expression "(code *)PTR_EOFBlob_003a9748" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_EOFBlob_003a9748"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")")))) (; ";")) (if_statement "if (iVar10 != 0) {\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();\n          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);\n          local_30cc = puVar8 + 0x1a0;\n          local_30d0 = PTR_LAB_003a88e0 + 0xe78;\n          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);\n          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);\n          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);\n          local_30d8._0_4_ = (ushort *)&DAT_000001a9;\n          local_30c8 = puVar9;\n          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);\n          (*(code *)PTR_DestroyString_003a9074)(puVar9);\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\nLAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);\n          param_1 = puVar9;\n          unaff_s8 = puVar11;\n          uVar69 = CONCAT44(uVar48,uVar23);\n          goto LAB_002546dc;\n        }" ({ "{") (expression_statement "puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();" (assignment_expression "puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_003a99b0)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_003a99b0)()" (parenthesized_expression "(*(code *)PTR___errno_location_003a99b0)" (( "(") (pointer_expression "*(code *)PTR___errno_location_003a99b0" (* "*") (cast_expression "(code *)PTR___errno_location_003a99b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_003a99b0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);" (assignment_expression "puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17)" (identifier "puVar9") (= "=") (cast_expression "(ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17)" (parenthesized_expression "(*(code *)PTR_GetExceptionMessage_003a93ec)" (( "(") (pointer_expression "*(code *)PTR_GetExceptionMessage_003a93ec" (* "*") (cast_expression "(code *)PTR_GetExceptionMessage_003a93ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetExceptionMessage_003a93ec"))) () ")")) (argument_list "(*puVar17)" (( "(") (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) () ")"))))) (; ";")) (expression_statement "local_30cc = puVar8 + 0x1a0;" (assignment_expression "local_30cc = puVar8 + 0x1a0" (identifier "local_30cc") (= "=") (binary_expression "puVar8 + 0x1a0" (identifier "puVar8") (+ "+") (number_literal "0x1a0"))) (; ";")) (expression_statement "local_30d0 = PTR_LAB_003a88e0 + 0xe78;" (assignment_expression "local_30d0 = PTR_LAB_003a88e0 + 0xe78" (identifier "local_30d0") (= "=") (binary_expression "PTR_LAB_003a88e0 + 0xe78" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0xe78"))) (; ";")) (expression_statement "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);" (assignment_expression "puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (identifier "puVar38") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x72a4")) () ")")))) (; ";")) (expression_statement "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);" (assignment_expression "puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc)" (( "(") (binary_expression "PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc" (identifier "PTR_s_pixels_3_def_____currentfile_byt_003a894c") (+ "+") (number_literal "-0x74dc")) () ")")))) (; ";")) (expression_statement "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);" (assignment_expression "local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c)" (field_expression "local_30d8._4_4_" (identifier "local_30d8") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(ushort *)(PTR_s_courses_003a88ec + -0x17c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0x17c)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0x17c" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x17c")) () ")")))) (; ";")) (expression_statement "local_30d8._0_4_ = (ushort *)&DAT_000001a9;" (assignment_expression "local_30d8._0_4_ = (ushort *)&DAT_000001a9" (field_expression "local_30d8._0_4_" (identifier "local_30d8") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(ushort *)&DAT_000001a9" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000001a9" (& "&") (identifier "DAT_000001a9")))) (; ";")) (expression_statement "local_30c8 = puVar9;" (assignment_expression "local_30c8 = puVar9" (identifier "local_30c8") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" (( "(") (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" (* "*") (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ThrowMagickException_003a8f20"))) () ")")) (argument_list "(param_2,puVar50,puVar38,1000)" (( "(") (identifier "param_2") (, ",") (identifier "puVar50") (, ",") (identifier "puVar38") (, ",") (number_literal "1000") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_DestroyString_003a9074)(puVar9);" (call_expression "(*(code *)PTR_DestroyString_003a9074)(puVar9)" (parenthesized_expression "(*(code *)PTR_DestroyString_003a9074)" (( "(") (pointer_expression "*(code *)PTR_DestroyString_003a9074" (* "*") (cast_expression "(code *)PTR_DestroyString_003a9074" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyString_003a9074"))) () ")")) (argument_list "(puVar9)" (( "(") (identifier "puVar9") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(puVar8);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(puVar8)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" (( "(") (pointer_expression "*(code *)PTR_CloseBlob_003a9688" (* "*") (cast_expression "(code *)PTR_CloseBlob_003a9688" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CloseBlob_003a9688"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))) (; ";")) (labeled_statement "LAB_002548a8:\n          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);" (statement_identifier "LAB_002548a8") (: ":") (expression_statement "iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_GetFirstImageInList_003a944c)(puVar8)" (parenthesized_expression "(*(code *)PTR_GetFirstImageInList_003a944c)" (( "(") (pointer_expression "*(code *)PTR_GetFirstImageInList_003a944c" (* "*") (cast_expression "(code *)PTR_GetFirstImageInList_003a944c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetFirstImageInList_003a944c"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")")))) (; ";"))) (expression_statement "param_1 = puVar9;" (assignment_expression "param_1 = puVar9" (identifier "param_1") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" (identifier "unaff_s8") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "uVar69 = CONCAT44(uVar48,uVar23);" (assignment_expression "uVar69 = CONCAT44(uVar48,uVar23)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(uVar48,uVar23)" (identifier "CONCAT44") (argument_list "(uVar48,uVar23)" (( "(") (identifier "uVar48") (, ",") (identifier "uVar23") () ")")))) (; ";")) (goto_statement "goto LAB_002546dc;" (goto "goto") (statement_identifier "LAB_002546dc") (; ";")) (} "}"))) (expression_statement "uVar48 = 0xffffffff;" (assignment_expression "uVar48 = 0xffffffff" (identifier "uVar48") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar69 = CONCAT44(0xffffffff,uVar23);" (assignment_expression "uVar69 = CONCAT44(0xffffffff,uVar23)" (identifier "uVar69") (= "=") (call_expression "CONCAT44(0xffffffff,uVar23)" (identifier "CONCAT44") (argument_list "(0xffffffff,uVar23)" (( "(") (number_literal "0xffffffff") (, ",") (identifier "uVar23") () ")")))) (; ";")) (while_statement "while( true ) {\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);\n          unaff_s4 = (ushort *)((int)unaff_s8 * 2);\n          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;\n          bVar1 = unaff_s8 == (ushort *)0xffffffff;\n          unaff_s8 = puVar11;\n          if (bVar1) goto LAB_0025489c;\n        }" ({ "{") (expression_statement "unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);" (assignment_expression "unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (identifier "unaff_s8") (= "=") (cast_expression "(ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8)" (parenthesized_expression "(*(code *)PTR_ReadBlobByte_003a97f0)" (( "(") (pointer_expression "*(code *)PTR_ReadBlobByte_003a97f0" (* "*") (cast_expression "(code *)PTR_ReadBlobByte_003a97f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReadBlobByte_003a97f0"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";")) (expression_statement "unaff_s4 = (ushort *)((int)unaff_s8 * 2);" (assignment_expression "unaff_s4 = (ushort *)((int)unaff_s8 * 2)" (identifier "unaff_s4") (= "=") (cast_expression "(ushort *)((int)unaff_s8 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s8 * 2)" (( "(") (binary_expression "(int)unaff_s8 * 2" (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8")) (* "*") (number_literal "2")) () ")")))) (; ";")) (if_statement "if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;" (if "if") (parenthesized_expression "((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0)" (( "(") (binary_expression "(*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0" (parenthesized_expression "(*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80)" (( "(") (binary_expression "*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80" (pointer_expression "*(ushort *)(*(int *)puVar9 + (int)unaff_s4)" (* "*") (cast_expression "(ushort *)(*(int *)puVar9 + (int)unaff_s4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar9 + (int)unaff_s4)" (( "(") (binary_expression "*(int *)puVar9 + (int)unaff_s4" (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (+ "+") (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4"))) () ")")))) (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "bVar1 = unaff_s8 == (ushort *)0xffffffff;" (assignment_expression "bVar1 = unaff_s8 == (ushort *)0xffffffff" (identifier "bVar1") (= "=") (binary_expression "unaff_s8 == (ushort *)0xffffffff" (identifier "unaff_s8") (== "==") (cast_expression "(ushort *)0xffffffff" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff")))) (; ";")) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" (identifier "unaff_s8") (= "=") (identifier "puVar11")) (; ";")) (if_statement "if (bVar1) goto LAB_0025489c;" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (goto_statement "goto LAB_0025489c;" (goto "goto") (statement_identifier "LAB_0025489c") (; ";"))) (} "}"))) (if_statement "if (unaff_s8 == (ushort *)0xffffffff) {\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }" (if "if") (parenthesized_expression "(unaff_s8 == (ushort *)0xffffffff)" (( "(") (binary_expression "unaff_s8 == (ushort *)0xffffffff" (identifier "unaff_s8") (== "==") (cast_expression "(ushort *)0xffffffff" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\nLAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);\n          puVar11 = unaff_s8;\n          goto LAB_002548a8;\n        }" ({ "{") (labeled_statement "LAB_0025489c:\n          (*(code *)PTR_CloseBlob_003a9688)(puVar8);" (statement_identifier "LAB_0025489c") (: ":") (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(puVar8);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(puVar8)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" (( "(") (pointer_expression "*(code *)PTR_CloseBlob_003a9688" (* "*") (cast_expression "(code *)PTR_CloseBlob_003a9688" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CloseBlob_003a9688"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))) (; ";"))) (expression_statement "puVar11 = unaff_s8;" (assignment_expression "puVar11 = unaff_s8" (identifier "puVar11") (= "=") (identifier "unaff_s8")) (; ";")) (goto_statement "goto LAB_002548a8;" (goto "goto") (statement_identifier "LAB_002548a8") (; ";")) (} "}"))) (expression_statement "puVar50 = puVar8;" (assignment_expression "puVar50 = puVar8" (identifier "puVar50") (= "=") (identifier "puVar8")) (; ";")) (expression_statement "puVar38 = param_2;" (assignment_expression "puVar38 = param_2" (identifier "puVar38") (= "=") (identifier "param_2")) (; ";")) (expression_statement "(*(code *)PTR_AcquireNextImage_003a8f90)(param_1);" (call_expression "(*(code *)PTR_AcquireNextImage_003a8f90)(param_1)" (parenthesized_expression "(*(code *)PTR_AcquireNextImage_003a8f90)" (( "(") (pointer_expression "*(code *)PTR_AcquireNextImage_003a8f90" (* "*") (cast_expression "(code *)PTR_AcquireNextImage_003a8f90" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireNextImage_003a8f90"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_GetNextImageInList_003a9470)(puVar8)" (parenthesized_expression "(*(code *)PTR_GetNextImageInList_003a9470)" (( "(") (pointer_expression "*(code *)PTR_GetNextImageInList_003a9470" (* "*") (cast_expression "(code *)PTR_GetNextImageInList_003a9470" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetNextImageInList_003a9470"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) break;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);" (assignment_expression "puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8)" (identifier "puVar8") (= "=") (cast_expression "(ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8)" (parenthesized_expression "(*(code *)PTR_SyncNextImageInList_003a9408)" (( "(") (pointer_expression "*(code *)PTR_SyncNextImageInList_003a9408" (* "*") (cast_expression "(code *)PTR_SyncNextImageInList_003a9408" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SyncNextImageInList_003a9408"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))))) (; ";")) (expression_statement "uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);" (assignment_expression "uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8)" (identifier "uVar69") (= "=") (call_expression "(*(code *)PTR_TellBlob_003a931c)(puVar8)" (parenthesized_expression "(*(code *)PTR_TellBlob_003a931c)" (( "(") (pointer_expression "*(code *)PTR_TellBlob_003a931c" (* "*") (cast_expression "(code *)PTR_TellBlob_003a931c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_TellBlob_003a931c"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")")))) (; ";")) (expression_statement "puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);" (assignment_expression "puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20)" (identifier "puVar38") (= "=") (cast_expression "(ushort *)((ulonglong)uVar69 >> 0x20)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar69 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar69 >> 0x20" (cast_expression "(ulonglong)uVar69" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar69")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);" (assignment_expression "local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8)" (identifier "local_30d8") (= "=") (call_expression "(*(code *)PTR_GetBlobSize_003a94b8)(puVar8)" (parenthesized_expression "(*(code *)PTR_GetBlobSize_003a94b8)" (( "(") (pointer_expression "*(code *)PTR_GetBlobSize_003a94b8" (* "*") (cast_expression "(code *)PTR_GetBlobSize_003a94b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetBlobSize_003a94b8"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")")))) (; ";")) (expression_statement "puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);" (assignment_expression "puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(PTR_s_courses_003a88ec + -0x168)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0x168)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0x168" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x168")) () ")")))) (; ";")) (expression_statement "local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);" (assignment_expression "local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69)" (identifier "local_309c") (= "=") (call_expression "(*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69)" (parenthesized_expression "(*(code *)PTR_SetImageProgress_003a8cb4)" (( "(") (pointer_expression "*(code *)PTR_SetImageProgress_003a8cb4" (* "*") (cast_expression "(code *)PTR_SetImageProgress_003a8cb4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SetImageProgress_003a8cb4"))) () ")")) (argument_list "(puVar8,puVar50,puVar38,(int)uVar69)" (( "(") (identifier "puVar8") (, ",") (identifier "puVar50") (, ",") (identifier "puVar38") (, ",") (cast_expression "(int)uVar69" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar69")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_309c != 0)" (( "(") (binary_expression "local_309c != 0" (identifier "local_309c") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "(*(code *)PTR_CloseBlob_003a9688)(puVar8);" (call_expression "(*(code *)PTR_CloseBlob_003a9688)(puVar8)" (parenthesized_expression "(*(code *)PTR_CloseBlob_003a9688)" (( "(") (pointer_expression "*(code *)PTR_CloseBlob_003a9688" (* "*") (cast_expression "(code *)PTR_CloseBlob_003a9688" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CloseBlob_003a9688"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))) (; ";")) (expression_statement "puVar11 = unaff_s8;" (assignment_expression "puVar11 = unaff_s8" (identifier "puVar11") (= "=") (identifier "unaff_s8")) (; ";")) (labeled_statement "LAB_00253dbc:\n      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);" (statement_identifier "LAB_00253dbc") (: ":") (expression_statement "iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);" (assignment_expression "iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_DestroyImageList_003a9510)(puVar8)" (parenthesized_expression "(*(code *)PTR_DestroyImageList_003a9510)" (( "(") (pointer_expression "*(code *)PTR_DestroyImageList_003a9510" (* "*") (cast_expression "(code *)PTR_DestroyImageList_003a9510" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyImageList_003a9510"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")")))) (; ";"))) (expression_statement "param_1 = puVar9;" (assignment_expression "param_1 = puVar9" (identifier "param_1") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "unaff_s8 = puVar11;" (assignment_expression "unaff_s8 = puVar11" (identifier "unaff_s8") (= "=") (identifier "puVar11")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_002546dc:\n  if (local_44 == *(int *)puVar54) {\n    return iVar10;\n  }" (statement_identifier "LAB_002546dc") (: ":") (if_statement "if (local_44 == *(int *)puVar54) {\n    return iVar10;\n  }" (if "if") (parenthesized_expression "(local_44 == *(int *)puVar54)" (( "(") (binary_expression "local_44 == *(int *)puVar54" (identifier "local_44") (== "==") (pointer_expression "*(int *)puVar54" (* "*") (cast_expression "(int *)puVar54" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar54")))) () ")")) (compound_statement "{\n    return iVar10;\n  }" ({ "{") (return_statement "return iVar10;" (return "return") (identifier "iVar10") (; ";")) (} "}")))) (expression_statement "pcVar55 = FUN_002555c4;" (assignment_expression "pcVar55 = FUN_002555c4" (identifier "pcVar55") (= "=") (identifier "FUN_002555c4")) (; ";")) (expression_statement "iVar10 = local_44;" (assignment_expression "iVar10 = local_44" (identifier "iVar10") (= "=") (identifier "local_44")) (; ";")) (expression_statement "puVar54 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar54 = PTR___stack_chk_fail_003a9064" (identifier "puVar54") (= "=") (identifier "PTR___stack_chk_fail_003a9064")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_003a9064" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_003a9064"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar18 = *(int **)(puVar54 + 0x153c6c);" (assignment_expression "piVar18 = *(int **)(puVar54 + 0x153c6c)" (identifier "piVar18") (= "=") (pointer_expression "*(int **)(puVar54 + 0x153c6c)" (* "*") (cast_expression "(int **)(puVar54 + 0x153c6c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153c6c)" (( "(") (binary_expression "puVar54 + 0x153c6c" (identifier "puVar54") (+ "+") (number_literal "0x153c6c")) () ")"))))) (; ";")) (expression_statement "iStack_3144 = *piVar18;" (assignment_expression "iStack_3144 = *piVar18" (identifier "iStack_3144") (= "=") (pointer_expression "*piVar18" (* "*") (identifier "piVar18"))) (; ";")) (expression_statement "puStack_3140 = puVar8;" (assignment_expression "puStack_3140 = puVar8" (identifier "puStack_3140") (= "=") (identifier "puVar8")) (; ";")) (expression_statement "puStack_313c = param_1;" (assignment_expression "puStack_313c = param_1" (identifier "puStack_313c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puStack_3130 = unaff_s4;" (assignment_expression "puStack_3130 = unaff_s4" (identifier "puStack_3130") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "puStack_312c = unaff_s5;" (assignment_expression "puStack_312c = unaff_s5" (identifier "puStack_312c") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "puStack_3128 = unaff_s6;" (assignment_expression "puStack_3128 = unaff_s6" (identifier "puStack_3128") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "puStack_3124 = unaff_s7;" (assignment_expression "puStack_3124 = unaff_s7" (identifier "puStack_3124") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "puStack_3120 = unaff_s8;" (assignment_expression "puStack_3120 = unaff_s8" (identifier "puStack_3120") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "pcStack_311c = pcVar55;" (assignment_expression "pcStack_311c = pcVar55" (identifier "pcStack_311c") (= "=") (identifier "pcVar55")) (; ";")) (expression_statement "dStack_3118 = in_f20_21;" (assignment_expression "dStack_3118 = in_f20_21" (identifier "dStack_3118") (= "=") (identifier "in_f20_21")) (; ";")) (expression_statement "dStack_3110 = in_f22_23;" (assignment_expression "dStack_3110 = in_f22_23" (identifier "dStack_3110") (= "=") (identifier "in_f22_23")) (; ";")) (expression_statement "dStack_3108 = in_f24_25;" (assignment_expression "dStack_3108 = in_f24_25" (identifier "dStack_3108") (= "=") (identifier "in_f24_25")) (; ";")) (expression_statement "uStack_3138 = uVar69;" (assignment_expression "uStack_3138 = uVar69" (identifier "uStack_3138") (= "=") (identifier "uVar69")) (; ";")) (if_statement "if (iVar10 == 0) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);\n    return iVar10;\n  }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);\n    return iVar10;\n  }" ({ "{") (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x154044)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x154044)" (* "*") (cast_expression "(code **)(puVar54 + 0x154044)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x154044)" (( "(") (binary_expression "puVar54 + 0x154044" (identifier "puVar54") (+ "+") (number_literal "0x154044")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274)" (( "(") (binary_expression "*(int *)(puVar54 + 0x15331c) + 0xd78" (pointer_expression "*(int *)(puVar54 + 0x15331c)" (* "*") (cast_expression "(int *)(puVar54 + 0x15331c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x15331c)" (( "(") (binary_expression "puVar54 + 0x15331c" (identifier "puVar54") (+ "+") (number_literal "0x15331c")) () ")")))) (+ "+") (number_literal "0xd78")) (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x74dc")) (, ",") (number_literal "0x483") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7274" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7274")) () ")")))) (; ";")) (return_statement "return iVar10;" (return "return") (identifier "iVar10") (; ";")) (} "}"))) (expression_statement "puVar8 = *(ushort **)(puVar54 + 0x153388);" (assignment_expression "puVar8 = *(ushort **)(puVar54 + 0x153388)" (identifier "puVar8") (= "=") (pointer_expression "*(ushort **)(puVar54 + 0x153388)" (* "*") (cast_expression "(ushort **)(puVar54 + 0x153388)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar10 + 0x3214) != -0x54535255) {\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);\n    return iVar10;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x3214) != -0x54535255)" (( "(") (binary_expression "*(int *)(iVar10 + 0x3214) != -0x54535255" (pointer_expression "*(int *)(iVar10 + 0x3214)" (* "*") (cast_expression "(int *)(iVar10 + 0x3214)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x3214)" (( "(") (binary_expression "iVar10 + 0x3214" (identifier "iVar10") (+ "+") (number_literal "0x3214")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);\n    return iVar10;\n  }" ({ "{") (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(puVar54 + 0x154044))\n                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x154044)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x154044)" (* "*") (cast_expression "(code **)(puVar54 + 0x154044)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x154044)" (( "(") (binary_expression "puVar54 + 0x154044" (identifier "puVar54") (+ "+") (number_literal "0x154044")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                        0x484,puVar8 + -0x393a)" (( "(") (binary_expression "*(int *)(puVar54 + 0x15331c) + 0xda0" (pointer_expression "*(int *)(puVar54 + 0x15331c)" (* "*") (cast_expression "(int *)(puVar54 + 0x15331c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x15331c)" (( "(") (binary_expression "puVar54 + 0x15331c" (identifier "puVar54") (+ "+") (number_literal "0x15331c")) () ")")))) (+ "+") (number_literal "0xda0")) (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x74dc")) (, ",") (number_literal "0x484") (, ",") (binary_expression "puVar8 + -0x393a" (identifier "puVar8") (+ "+") (number_literal "-0x393a")) () ")")))) (; ";")) (return_statement "return iVar10;" (return "return") (identifier "iVar10") (; ";")) (} "}"))) (if_statement "if (puVar50 != (ushort *)0x0) {\n    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }\n    if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }\n    if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    puVar8 = puVar38;\n    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);\n    if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }\n    if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }\n    (**(code **)(puVar54 + 0x153aa0))();\n  }" (if "if") (parenthesized_expression "(puVar50 != (ushort *)0x0)" (( "(") (binary_expression "puVar50 != (ushort *)0x0" (identifier "puVar50") (!= "!=") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }\n    if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }\n    if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }\n    puVar8 = puVar38;\n    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);\n    if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }\n    if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }\n    (**(code **)(puVar54 + 0x153aa0))();\n  }" ({ "{") (if_statement "if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x19b6) != -0x54535255)" (( "(") (binary_expression "*(int *)(puVar50 + 0x19b6) != -0x54535255" (pointer_expression "*(int *)(puVar50 + 0x19b6)" (* "*") (cast_expression "(int *)(puVar50 + 0x19b6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x19b6)" (( "(") (binary_expression "puVar50 + 0x19b6" (identifier "puVar50") (+ "+") (number_literal "0x19b6")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);\n      return iVar10;\n    }" ({ "{") (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x154044)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x154044)" (* "*") (cast_expression "(code **)(puVar54 + 0x154044)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x154044)" (( "(") (binary_expression "puVar54 + 0x154044" (identifier "puVar54") (+ "+") (number_literal "0x154044")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar54 + 0x153324) + -0x3784,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a)" (( "(") (binary_expression "*(int *)(puVar54 + 0x153324) + -0x3784" (pointer_expression "*(int *)(puVar54 + 0x153324)" (* "*") (cast_expression "(int *)(puVar54 + 0x153324)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153324)" (( "(") (binary_expression "puVar54 + 0x153324" (identifier "puVar54") (+ "+") (number_literal "0x153324")) () ")")))) (+ "+") (number_literal "-0x3784")) (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x74dc")) (, ",") (number_literal "0x486") (, ",") (binary_expression "puVar8 + -0x393a" (identifier "puVar8") (+ "+") (number_literal "-0x393a")) () ")")))) (; ";")) (return_statement "return iVar10;" (return "return") (identifier "iVar10") (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar50 + 0x19a8) != 0) {\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x19a8) != 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0x19a8) != 0" (pointer_expression "*(int *)(puVar50 + 0x19a8)" (* "*") (cast_expression "(int *)(puVar50 + 0x19a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x19a8)" (( "(") (binary_expression "puVar50 + 0x19a8" (identifier "puVar50") (+ "+") (number_literal "0x19a8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);\n    }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0);" (call_expression "(**(code **)(puVar54 + 0x153c1c))\n                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0)" (parenthesized_expression "(**(code **)(puVar54 + 0x153c1c))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153c1c)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153c1c)" (* "*") (cast_expression "(code **)(puVar54 + 0x153c1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153c1c)" (( "(") (binary_expression "puVar54 + 0x153c1c" (identifier "puVar54") (+ "+") (number_literal "0x153c1c")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac\n                 ,puVar50 + 0x1a0)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x74dc")) (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7284" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7284")) (, ",") (number_literal "0x488") (, ",") (binary_expression "*(int *)(puVar54 + 0x153320) + -0x62ac" (pointer_expression "*(int *)(puVar54 + 0x153320)" (* "*") (cast_expression "(int *)(puVar54 + 0x153320)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153320)" (( "(") (binary_expression "puVar54 + 0x153320" (identifier "puVar54") (+ "+") (number_literal "0x153320")) () ")")))) (+ "+") (number_literal "-0x62ac")) (, ",") (binary_expression "puVar50 + 0x1a0" (identifier "puVar50") (+ "+") (number_literal "0x1a0")) () ")"))) (; ";")) (} "}"))) (if_statement "if (puVar38 == (ushort *)0x0) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }" (if "if") (parenthesized_expression "(puVar38 == (ushort *)0x0)" (( "(") (binary_expression "puVar38 == (ushort *)0x0" (identifier "puVar38") (== "==") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }" ({ "{") (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x154044)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x154044)" (* "*") (cast_expression "(code **)(puVar54 + 0x154044)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x154044)" (( "(") (binary_expression "puVar54 + 0x154044" (identifier "puVar54") (+ "+") (number_literal "0x154044")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar54 + 0x15331c) + 0x1cac,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" (( "(") (binary_expression "*(int *)(puVar54 + 0x15331c) + 0x1cac" (pointer_expression "*(int *)(puVar54 + 0x15331c)" (* "*") (cast_expression "(int *)(puVar54 + 0x15331c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x15331c)" (( "(") (binary_expression "puVar54 + 0x15331c" (identifier "puVar54") (+ "+") (number_literal "0x15331c")) () ")")))) (+ "+") (number_literal "0x1cac")) (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x74dc")) (, ",") (number_literal "0x489") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7274" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7274")) () ")")))) (; ";")) (return_statement "return iVar10;" (return "return") (identifier "iVar10") (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar38 + 0xe) != -0x54535255) {\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar38 + 0xe) != -0x54535255)" (( "(") (binary_expression "*(int *)(puVar38 + 0xe) != -0x54535255" (pointer_expression "*(int *)(puVar38 + 0xe)" (* "*") (cast_expression "(int *)(puVar38 + 0xe)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar38 + 0xe)" (( "(") (binary_expression "puVar38 + 0xe" (identifier "puVar38") (+ "+") (number_literal "0xe")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n      iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);\n      return iVar10;\n    }" ({ "{") (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(puVar54 + 0x154044))\n                         (*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x154044)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x154044)" (* "*") (cast_expression "(code **)(puVar54 + 0x154044)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x154044)" (( "(") (binary_expression "puVar54 + 0x154044" (identifier "puVar54") (+ "+") (number_literal "0x154044")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar54 + 0x15331c) + 0x294c,\n                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,\n                          *(int *)(puVar54 + 0x153388) + -0x7274)" (( "(") (binary_expression "*(int *)(puVar54 + 0x15331c) + 0x294c" (pointer_expression "*(int *)(puVar54 + 0x15331c)" (* "*") (cast_expression "(int *)(puVar54 + 0x15331c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x15331c)" (( "(") (binary_expression "puVar54 + 0x15331c" (identifier "puVar54") (+ "+") (number_literal "0x15331c")) () ")")))) (+ "+") (number_literal "0x294c")) (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x74dc")) (, ",") (number_literal "0x48a") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7274" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7274")) () ")")))) (; ";")) (return_statement "return iVar10;" (return "return") (identifier "iVar10") (; ";")) (} "}"))) (expression_statement "puVar8 = puVar38;" (assignment_expression "puVar8 = puVar38" (identifier "puVar8") (= "=") (identifier "puVar38")) (; ";")) (expression_statement "iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);" (assignment_expression "iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38)" (identifier "iVar30") (= "=") (call_expression "(**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38)" (parenthesized_expression "(**(code **)(puVar54 + 0x153c88))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153c88)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153c88)" (* "*") (cast_expression "(code **)(puVar54 + 0x153c88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153c88)" (( "(") (binary_expression "puVar54 + 0x153c88" (identifier "puVar54") (+ "+") (number_literal "0x153c88")) () ")"))))) () ")")) (argument_list "(iVar10,puVar50,4,puVar38)" (( "(") (identifier "iVar10") (, ",") (identifier "puVar50") (, ",") (number_literal "4") (, ",") (identifier "puVar38") () ")")))) (; ";")) (if_statement "if (iVar30 == 0) {\nLAB_0025569c:\n      iVar46 = 0;\n    }\n    else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }" (if "if") (parenthesized_expression "(iVar30 == 0)" (( "(") (binary_expression "iVar30 == 0" (identifier "iVar30") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0025569c:\n      iVar46 = 0;\n    }" ({ "{") (labeled_statement "LAB_0025569c:\n      iVar46 = 0;" (statement_identifier "LAB_0025569c") (: ":") (expression_statement "iVar46 = 0;" (assignment_expression "iVar46 = 0" (identifier "iVar46") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }" (else "else") (compound_statement "{\n      iVar47 = *(int *)(puVar54 + 0x15331c);\n      iVar49 = *(int *)(puVar54 + 0x15331c);\n      iVar51 = *(int *)(puVar54 + 0x15331c);\n      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);\n      iVar30 = *(int *)(puVar54 + 0x153388);\n      iVar12 = *(int *)(puVar54 + 0x153388);\n      iVar19 = *(int *)(puVar54 + 0x153388);\n      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);\n      uStack_514c = 0;\n      uStack_5150 = 0;\n      (**(code **)(puVar54 + 0x153cb4))(puVar50);\n      dVar68 = *(double *)(iVar47 + 0x1418);\n      iVar20 = *(int *)(puVar54 + 0x153388);\n      dVar67 = *(double *)(iVar49 + 0x1400);\n      iVar31 = *(int *)(puVar54 + 0x153388);\n      dVar66 = *(double *)(iVar51 + 0x1410);\n      iVar21 = *(int *)(puVar54 + 0x153388);\n      puStack_5188 = (ushort *)0x0;\n      iVar22 = *(int *)(puVar54 + 0x153388);\n      do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);\n      pcVar55 = *(code **)(puVar54 + 0x1540c4);\nLAB_00255ea8:\n      (*pcVar55)(puVar50);\n    }" ({ "{") (expression_statement "iVar47 = *(int *)(puVar54 + 0x15331c);" (assignment_expression "iVar47 = *(int *)(puVar54 + 0x15331c)" (identifier "iVar47") (= "=") (pointer_expression "*(int *)(puVar54 + 0x15331c)" (* "*") (cast_expression "(int *)(puVar54 + 0x15331c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x15331c)" (( "(") (binary_expression "puVar54 + 0x15331c" (identifier "puVar54") (+ "+") (number_literal "0x15331c")) () ")"))))) (; ";")) (expression_statement "iVar49 = *(int *)(puVar54 + 0x15331c);" (assignment_expression "iVar49 = *(int *)(puVar54 + 0x15331c)" (identifier "iVar49") (= "=") (pointer_expression "*(int *)(puVar54 + 0x15331c)" (* "*") (cast_expression "(int *)(puVar54 + 0x15331c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x15331c)" (( "(") (binary_expression "puVar54 + 0x15331c" (identifier "puVar54") (+ "+") (number_literal "0x15331c")) () ")"))))) (; ";")) (expression_statement "iVar51 = *(int *)(puVar54 + 0x15331c);" (assignment_expression "iVar51 = *(int *)(puVar54 + 0x15331c)" (identifier "iVar51") (= "=") (pointer_expression "*(int *)(puVar54 + 0x15331c)" (* "*") (cast_expression "(int *)(puVar54 + 0x15331c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x15331c)" (( "(") (binary_expression "puVar54 + 0x15331c" (identifier "puVar54") (+ "+") (number_literal "0x15331c")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);" (call_expression "(**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa)" (parenthesized_expression "(**(code **)(puVar54 + 0x154278))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x154278)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x154278)" (* "*") (cast_expression "(code **)(puVar54 + 0x154278)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x154278)" (( "(") (binary_expression "puVar54 + 0x154278" (identifier "puVar54") (+ "+") (number_literal "0x154278")) () ")"))))) () ")")) (argument_list "(auStack_4144,puVar50 + 0x1a0,0xffa)" (( "(") (identifier "auStack_4144") (, ",") (binary_expression "puVar50 + 0x1a0" (identifier "puVar50") (+ "+") (number_literal "0x1a0")) (, ",") (number_literal "0xffa") () ")"))) (; ";")) (expression_statement "iVar30 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar30 = *(int *)(puVar54 + 0x153388)" (identifier "iVar30") (= "=") (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")"))))) (; ";")) (expression_statement "iVar12 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar12 = *(int *)(puVar54 + 0x153388)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")"))))) (; ";")) (expression_statement "iVar19 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar19 = *(int *)(puVar54 + 0x153388)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);" (call_expression "(**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144)" (parenthesized_expression "(**(code **)(puVar54 + 0x1539e4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1539e4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1539e4)" (* "*") (cast_expression "(code **)(puVar54 + 0x1539e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1539e4)" (( "(") (binary_expression "puVar54 + 0x1539e4" (identifier "puVar54") (+ "+") (number_literal "0x1539e4")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144)" (( "(") (binary_expression "*(int *)(puVar54 + 0x153328) + -0x50b8" (pointer_expression "*(int *)(puVar54 + 0x153328)" (* "*") (cast_expression "(int *)(puVar54 + 0x153328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153328)" (( "(") (binary_expression "puVar54 + 0x153328" (identifier "puVar54") (+ "+") (number_literal "0x153328")) () ")")))) (+ "+") (number_literal "-0x50b8")) (, ",") (identifier "auStack_4144") () ")"))) (; ";")) (expression_statement "uStack_514c = 0;" (assignment_expression "uStack_514c = 0" (identifier "uStack_514c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_5150 = 0;" (assignment_expression "uStack_5150 = 0" (identifier "uStack_5150") (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153cb4))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x153cb4))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153cb4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153cb4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153cb4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153cb4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153cb4)" (( "(") (binary_expression "puVar54 + 0x153cb4" (identifier "puVar54") (+ "+") (number_literal "0x153cb4")) () ")"))))) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")"))) (; ";")) (expression_statement "dVar68 = *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar68 = *(double *)(iVar47 + 0x1418)" (identifier "dVar68") (= "=") (pointer_expression "*(double *)(iVar47 + 0x1418)" (* "*") (cast_expression "(double *)(iVar47 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + 0x1418)" (( "(") (binary_expression "iVar47 + 0x1418" (identifier "iVar47") (+ "+") (number_literal "0x1418")) () ")"))))) (; ";")) (expression_statement "iVar20 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar20 = *(int *)(puVar54 + 0x153388)" (identifier "iVar20") (= "=") (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")"))))) (; ";")) (expression_statement "dVar67 = *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar67 = *(double *)(iVar49 + 0x1400)" (identifier "dVar67") (= "=") (pointer_expression "*(double *)(iVar49 + 0x1400)" (* "*") (cast_expression "(double *)(iVar49 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x1400)" (( "(") (binary_expression "iVar49 + 0x1400" (identifier "iVar49") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "iVar31 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar31 = *(int *)(puVar54 + 0x153388)" (identifier "iVar31") (= "=") (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")"))))) (; ";")) (expression_statement "dVar66 = *(double *)(iVar51 + 0x1410);" (assignment_expression "dVar66 = *(double *)(iVar51 + 0x1410)" (identifier "dVar66") (= "=") (pointer_expression "*(double *)(iVar51 + 0x1410)" (* "*") (cast_expression "(double *)(iVar51 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar51 + 0x1410)" (( "(") (binary_expression "iVar51 + 0x1410" (identifier "iVar51") (+ "+") (number_literal "0x1410")) () ")"))))) (; ";")) (expression_statement "iVar21 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar21 = *(int *)(puVar54 + 0x153388)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")"))))) (; ";")) (expression_statement "puStack_5188 = (ushort *)0x0;" (assignment_expression "puStack_5188 = (ushort *)0x0" (identifier "puStack_5188") (= "=") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar22 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar22 = *(int *)(puVar54 + 0x153388)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")"))))) (; ";")) (do_statement "do {\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      } while (*(int *)(iVar10 + 0xc) != 0);" (do "do") (compound_statement "{\n        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);\n        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);\n        if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);\n        uVar48 = (**(code **)(puVar54 + 0x154128))(0);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);\n        dVar65 = (double)*(int *)(puVar50 + 0x12);\n        if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }\n        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        dVar65 = (double)*(int *)(puVar50 + 0x10);\n        if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar56 = (double)*(int *)(puVar50 + 0xe);\n        if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }\n        dVar57 = (double)*(int *)(puVar50 + 0xc);\n        if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));\n        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 0x10c);\n        dVar61 = *(double *)(puVar50 + 0x110);\n        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }\n        iVar32 = *(int *)(puVar50 + 0x114);\n        iVar34 = *(int *)(puVar50 + 0x116);\n        iVar39 = *(int *)(puVar50 + 0x118);\n        iVar24 = *(int *)(puVar50 + 0x11a);\n        if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        iVar24 = *(int *)(puVar50 + 0x14e);\n        if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }\n        iVar24 = (*pcVar55)(puVar50);\n        iVar32 = *(int *)(puVar50 + 0x136);\n        if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        dVar65 = *(double *)(puVar50 + 200);\n        if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }\n        if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }\n        (**(code **)(puVar54 + 0x1536d0))(puVar50);\n        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);\n        if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }\nLAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);\n        if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }\n        if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }\n        puVar8 = (ushort *)&uStack_5150;\n        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);\n        if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }\n        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);\n        if (iVar24 == 0) break;\n        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);\n        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }\n        puStack_5188 = (ushort *)((int)puStack_5188 + 1);\n      }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);" (call_expression "(**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38)" (parenthesized_expression "(**(code **)(puVar54 + 0x154260))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x154260)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x154260)" (* "*") (cast_expression "(code **)(puVar54 + 0x154260)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x154260)" (( "(") (binary_expression "puVar54 + 0x154260" (identifier "puVar54") (+ "+") (number_literal "0x154260")) () ")"))))) () ")")) (argument_list "(puVar50,*(undefined4 *)puVar50,puVar38)" (( "(") (identifier "puVar50") (, ",") (pointer_expression "*(undefined4 *)puVar50" (* "*") (cast_expression "(undefined4 *)puVar50" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar50"))) (, ",") (identifier "puVar38") () ")"))) (; ";")) (expression_statement "iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);" (assignment_expression "iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1)" (identifier "iVar46") (= "=") (call_expression "(**(code **)(puVar54 + 0x153c24))(puVar50,1)" (parenthesized_expression "(**(code **)(puVar54 + 0x153c24))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153c24)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153c24)" (* "*") (cast_expression "(code **)(puVar54 + 0x153c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153c24)" (( "(") (binary_expression "puVar54 + 0x153c24" (identifier "puVar54") (+ "+") (number_literal "0x153c24")) () ")"))))) () ")")) (argument_list "(puVar50,1)" (( "(") (identifier "puVar50") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (*(int *)puVar50 == 2) {\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }" (if "if") (parenthesized_expression "(*(int *)puVar50 == 2)" (( "(") (binary_expression "*(int *)puVar50 == 2" (pointer_expression "*(int *)puVar50" (* "*") (cast_expression "(int *)puVar50" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar50"))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          uVar13 = *(uint *)(puVar50 + 0x10);\n          if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }\n          if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }\n        }" ({ "{") (expression_statement "uVar13 = *(uint *)(puVar50 + 0x10);" (assignment_expression "uVar13 = *(uint *)(puVar50 + 0x10)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(puVar50 + 0x10)" (* "*") (cast_expression "(uint *)(puVar50 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x10)" (( "(") (binary_expression "puVar50 + 0x10" (identifier "puVar50") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (uVar13 == 0) {\n            uVar13 = 1;\n          }\n          else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar13 = 1;\n          }" ({ "{") (expression_statement "uVar13 = 1;" (assignment_expression "uVar13 = 1" (identifier "uVar13") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }" (else "else") (compound_statement "{\n            uVar36 = 0;\n            if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }\n            uVar13 = 2 << (uVar36 - 1 & 0x1f);\n            if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }\n          }" ({ "{") (expression_statement "uVar36 = 0;" (assignment_expression "uVar36 = 0" (identifier "uVar36") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar13 < 0x41) {\n              uVar36 = uVar13;\n            }" (if "if") (parenthesized_expression "(uVar13 < 0x41)" (( "(") (binary_expression "uVar13 < 0x41" (identifier "uVar13") (< "<") (number_literal "0x41")) () ")")) (compound_statement "{\n              uVar36 = uVar13;\n            }" ({ "{") (expression_statement "uVar36 = uVar13;" (assignment_expression "uVar36 = uVar13" (identifier "uVar36") (= "=") (identifier "uVar13")) (; ";")) (} "}"))) (expression_statement "uVar13 = 2 << (uVar36 - 1 & 0x1f);" (assignment_expression "uVar13 = 2 << (uVar36 - 1 & 0x1f)" (identifier "uVar13") (= "=") (binary_expression "2 << (uVar36 - 1 & 0x1f)" (number_literal "2") (<< "<<") (parenthesized_expression "(uVar36 - 1 & 0x1f)" (( "(") (binary_expression "uVar36 - 1 & 0x1f" (binary_expression "uVar36 - 1" (identifier "uVar36") (- "-") (number_literal "1")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((uVar36 - 1 & 0x20) != 0) {\n              uVar13 = 0;\n            }" (if "if") (parenthesized_expression "((uVar36 - 1 & 0x20) != 0)" (( "(") (binary_expression "(uVar36 - 1 & 0x20) != 0" (parenthesized_expression "(uVar36 - 1 & 0x20)" (( "(") (binary_expression "uVar36 - 1 & 0x20" (binary_expression "uVar36 - 1" (identifier "uVar36") (- "-") (number_literal "1")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar13 = 0;\n            }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")))) (if_statement "if (uVar13 < *(uint *)(puVar50 + 0x12)) {\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }" (if "if") (parenthesized_expression "(uVar13 < *(uint *)(puVar50 + 0x12))" (( "(") (binary_expression "uVar13 < *(uint *)(puVar50 + 0x12)" (identifier "uVar13") (< "<") (pointer_expression "*(uint *)(puVar50 + 0x12)" (* "*") (cast_expression "(uint *)(puVar50 + 0x12)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x12)" (( "(") (binary_expression "puVar50 + 0x12" (identifier "puVar50") (+ "+") (number_literal "0x12")) () ")"))))) () ")")) (compound_statement "{\n            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);\n          }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);" (call_expression "(**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38)" (parenthesized_expression "(**(code **)(puVar54 + 0x154260))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x154260)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x154260)" (* "*") (cast_expression "(code **)(puVar54 + 0x154260)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x154260)" (( "(") (binary_expression "puVar54 + 0x154260" (identifier "puVar54") (+ "+") (number_literal "0x154260")) () ")"))))) () ")")) (argument_list "(puVar50,1,puVar38)" (( "(") (identifier "puVar50") (, ",") (number_literal "1") (, ",") (identifier "puVar38") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,iVar30 + -0x7434)" (( "(") (identifier "puVar50") (, ",") (binary_expression "iVar30 + -0x7434" (identifier "iVar30") (+ "+") (number_literal "-0x7434")) () ")"))) (; ";")) (expression_statement "uVar48 = (**(code **)(puVar54 + 0x154128))(0);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x154128))(0)" (identifier "uVar48") (= "=") (call_expression "(**(code **)(puVar54 + 0x154128))(0)" (parenthesized_expression "(**(code **)(puVar54 + 0x154128))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x154128)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x154128)" (* "*") (cast_expression "(code **)(puVar54 + 0x154128)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x154128)" (( "(") (binary_expression "puVar54 + 0x154128" (identifier "puVar54") (+ "+") (number_literal "0x154128")) () ")"))))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,iVar12 + -0x741c,uVar48)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "iVar12 + -0x741c" (identifier "iVar12") (+ "+") (number_literal "-0x741c")) (, ",") (identifier "uVar48") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50)" (identifier "uVar48") (= "=") (call_expression "(**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x15379c)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x15379c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15379c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15379c)" (( "(") (binary_expression "puVar54 + 0x15379c" (identifier "puVar54") (+ "+") (number_literal "0x15379c")) () ")"))))) () ")")) (argument_list "(5,*(undefined4 *)puVar50)" (( "(") (number_literal "5") (, ",") (pointer_expression "*(undefined4 *)puVar50" (* "*") (cast_expression "(undefined4 *)puVar50" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar50"))) () ")")))) (; ";")) (expression_statement "dVar65 = (double)*(int *)(puVar50 + 0x12);" (assignment_expression "dVar65 = (double)*(int *)(puVar50 + 0x12)" (identifier "dVar65") (= "=") (cast_expression "(double)*(int *)(puVar50 + 0x12)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(puVar50 + 0x12)" (* "*") (cast_expression "(int *)(puVar50 + 0x12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x12)" (( "(") (binary_expression "puVar50 + 0x12" (identifier "puVar50") (+ "+") (number_literal "0x12")) () ")")))))) (; ";")) (if_statement "if (*(int *)(puVar50 + 0x12) < 0) {\n          dVar65 = dVar65 + dVar68;\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x12) < 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0x12) < 0" (pointer_expression "*(int *)(puVar50 + 0x12)" (* "*") (cast_expression "(int *)(puVar50 + 0x12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x12)" (( "(") (binary_expression "puVar50 + 0x12" (identifier "puVar50") (+ "+") (number_literal "0x12")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar65 = dVar65 + dVar68;\n        }" ({ "{") (expression_statement "dVar65 = dVar65 + dVar68;" (assignment_expression "dVar65 = dVar65 + dVar68" (identifier "dVar65") (= "=") (binary_expression "dVar65 + dVar68" (identifier "dVar65") (+ "+") (identifier "dVar68"))) (; ";")) (} "}"))) (expression_statement "uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));" (assignment_expression "uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e))" (identifier "uVar23") (= "=") (call_expression "(**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e))" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x15379c)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x15379c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15379c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15379c)" (( "(") (binary_expression "puVar54 + 0x15379c" (identifier "puVar54") (+ "+") (number_literal "0x15379c")) () ")"))))) () ")")) (argument_list "(0x3a,*(undefined4 *)(puVar50 + 0x15e))" (( "(") (number_literal "0x3a") (, ",") (pointer_expression "*(undefined4 *)(puVar50 + 0x15e)" (* "*") (cast_expression "(undefined4 *)(puVar50 + 0x15e)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x15e)" (( "(") (binary_expression "puVar50 + 0x15e" (identifier "puVar50") (+ "+") (number_literal "0x15e")) () ")")))) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)\n        ;" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "iVar19 + -0x7990" (identifier "iVar19") (+ "+") (number_literal "-0x7990")) (, ",") (identifier "uVar48") (, ",") (identifier "dVar65") (, ",") (identifier "uVar23") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,iVar31 + -0x7404)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "iVar31 + -0x7404" (identifier "iVar31") (+ "+") (number_literal "-0x7404")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (expression_statement "dVar65 = (double)*(int *)(puVar50 + 0x10);" (assignment_expression "dVar65 = (double)*(int *)(puVar50 + 0x10)" (identifier "dVar65") (= "=") (cast_expression "(double)*(int *)(puVar50 + 0x10)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(puVar50 + 0x10)" (* "*") (cast_expression "(int *)(puVar50 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x10)" (( "(") (binary_expression "puVar50 + 0x10" (identifier "puVar50") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (if_statement "if (*(int *)(puVar50 + 0x10) < 0) {\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x10) < 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0x10) < 0" (pointer_expression "*(int *)(puVar50 + 0x10)" (* "*") (cast_expression "(int *)(puVar50 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x10)" (( "(") (binary_expression "puVar50 + 0x10" (identifier "puVar50") (+ "+") (number_literal "0x10")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n        }" ({ "{") (expression_statement "dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar65 = dVar65 + *(double *)(iVar47 + 0x1418)" (identifier "dVar65") (= "=") (binary_expression "dVar65 + *(double *)(iVar47 + 0x1418)" (identifier "dVar65") (+ "+") (pointer_expression "*(double *)(iVar47 + 0x1418)" (* "*") (cast_expression "(double *)(iVar47 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + 0x1418)" (( "(") (binary_expression "iVar47 + 0x1418" (identifier "iVar47") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar56 = (double)*(int *)(puVar50 + 0xe);" (assignment_expression "dVar56 = (double)*(int *)(puVar50 + 0xe)" (identifier "dVar56") (= "=") (cast_expression "(double)*(int *)(puVar50 + 0xe)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(puVar50 + 0xe)" (* "*") (cast_expression "(int *)(puVar50 + 0xe)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0xe)" (( "(") (binary_expression "puVar50 + 0xe" (identifier "puVar50") (+ "+") (number_literal "0xe")) () ")")))))) (; ";")) (if_statement "if (*(int *)(puVar50 + 0xe) < 0) {\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0xe) < 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0xe) < 0" (pointer_expression "*(int *)(puVar50 + 0xe)" (* "*") (cast_expression "(int *)(puVar50 + 0xe)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0xe)" (( "(") (binary_expression "puVar50 + 0xe" (identifier "puVar50") (+ "+") (number_literal "0xe")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n        }" ({ "{") (expression_statement "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418)" (identifier "dVar56") (= "=") (binary_expression "dVar56 + *(double *)(iVar47 + 0x1418)" (identifier "dVar56") (+ "+") (pointer_expression "*(double *)(iVar47 + 0x1418)" (* "*") (cast_expression "(double *)(iVar47 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + 0x1418)" (( "(") (binary_expression "iVar47 + 0x1418" (identifier "iVar47") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar57 = (double)*(int *)(puVar50 + 0xc);" (assignment_expression "dVar57 = (double)*(int *)(puVar50 + 0xc)" (identifier "dVar57") (= "=") (cast_expression "(double)*(int *)(puVar50 + 0xc)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(puVar50 + 0xc)" (* "*") (cast_expression "(int *)(puVar50 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0xc)" (( "(") (binary_expression "puVar50 + 0xc" (identifier "puVar50") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (if_statement "if (*(int *)(puVar50 + 0xc) < 0) {\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0xc) < 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0xc) < 0" (pointer_expression "*(int *)(puVar50 + 0xc)" (* "*") (cast_expression "(int *)(puVar50 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0xc)" (( "(") (binary_expression "puVar50 + 0xc" (identifier "puVar50") (+ "+") (number_literal "0xc")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n        }" ({ "{") (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" (identifier "dVar57") (= "=") (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" (identifier "dVar57") (+ "+") (pointer_expression "*(double *)(iVar47 + 0x1418)" (* "*") (cast_expression "(double *)(iVar47 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + 0x1418)" (( "(") (binary_expression "iVar47 + 0x1418" (identifier "iVar47") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,iVar20 + -0x73d0)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "iVar20 + -0x73d0" (identifier "iVar20") (+ "+") (number_literal "-0x73d0")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (if_statement "if (*(int *)(puVar50 + 0x150) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x150) != 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0x150) != 0" (pointer_expression "*(int *)(puVar50 + 0x150)" (* "*") (cast_expression "(int *)(puVar50 + 0x150)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x150)" (( "(") (binary_expression "puVar50 + 0x150" (identifier "puVar50") (+ "+") (number_literal "0x150")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" ({ "{") (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49)" (identifier "uVar48") (= "=") (call_expression "(**(code **)(puVar54 + 0x15379c))(0x49)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x15379c)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x15379c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15379c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15379c)" (( "(") (binary_expression "puVar54 + 0x15379c" (identifier "puVar54") (+ "+") (number_literal "0x15379c")) () ")"))))) () ")")) (argument_list "(0x49)" (( "(") (number_literal "0x49") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56\n                     ,dVar65)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7934" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7934")) (, ",") (identifier "uVar48") (, ",") (identifier "dVar57") (, ",") (identifier "dVar56") (, ",") (identifier "dVar65") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2))" (identifier "uVar48") (= "=") (call_expression "(**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2))" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x15379c)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x15379c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15379c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15379c)" (( "(") (binary_expression "puVar54 + 0x15379c" (identifier "puVar54") (+ "+") (number_literal "0x15379c")) () ")"))))) () ")")) (argument_list "(9,*(undefined4 *)(puVar50 + 2))" (( "(") (number_literal "9") (, ",") (pointer_expression "*(undefined4 *)(puVar50 + 2)" (* "*") (cast_expression "(undefined4 *)(puVar50 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 2)" (( "(") (binary_expression "puVar50 + 2" (identifier "puVar50") (+ "+") (number_literal "2")) () ")")))) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,iVar21 + -0x7928,uVar48)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "iVar21 + -0x7928" (identifier "iVar21") (+ "+") (number_literal "-0x7928")) (, ",") (identifier "uVar48") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (if_statement "if (*(int *)(puVar50 + 0x12a) == 0) {\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }\n        else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x12a) == 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0x12a) == 0" (pointer_expression "*(int *)(puVar50 + 0x12a)" (* "*") (cast_expression "(int *)(puVar50 + 0x12a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x12a)" (( "(") (binary_expression "puVar50 + 0x12a" (identifier "puVar50") (+ "+") (number_literal "0x12a")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;\nLAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }\n        }" ({ "{") (expression_statement "pcVar55 = *(code **)(puVar54 + 0x15379c);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x15379c)" (identifier "pcVar55") (= "=") (pointer_expression "*(code **)(puVar54 + 0x15379c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15379c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15379c)" (( "(") (binary_expression "puVar54 + 0x15379c" (identifier "puVar54") (+ "+") (number_literal "0x15379c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x12e) == 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0x12e) == 0" (pointer_expression "*(int *)(puVar50 + 0x12e)" (* "*") (cast_expression "(int *)(puVar50 + 0x12e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x12e)" (( "(") (binary_expression "puVar50 + 0x12e" (identifier "puVar50") (+ "+") (number_literal "0x12e")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00255a3c;" (goto "goto") (statement_identifier "LAB_00255a3c") (; ";"))) (labeled_statement "LAB_002565f0:\n          uVar48 = (*pcVar55)(0x18);" (statement_identifier "LAB_002565f0") (: ":") (expression_statement "uVar48 = (*pcVar55)(0x18);" (assignment_expression "uVar48 = (*pcVar55)(0x18)" (identifier "uVar48") (= "=") (call_expression "(*pcVar55)(0x18)" (parenthesized_expression "(*pcVar55)" (( "(") (pointer_expression "*pcVar55" (* "*") (identifier "pcVar55")) () ")")) (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")")))) (; ";"))) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7904" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7904")) (, ",") (identifier "uVar48") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (if_statement "if (*(int *)(puVar50 + 4) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 4) != 0)" (( "(") (binary_expression "*(int *)(puVar50 + 4) != 0" (pointer_expression "*(int *)(puVar50 + 4)" (* "*") (cast_expression "(int *)(puVar50 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 4)" (( "(") (binary_expression "puVar50 + 4" (identifier "puVar50") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_0025663c;\n          }" ({ "{") (expression_statement "pcVar55 = *(code **)(puVar54 + 0x15379c);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x15379c)" (identifier "pcVar55") (= "=") (pointer_expression "*(code **)(puVar54 + 0x15379c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15379c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15379c)" (( "(") (binary_expression "puVar54 + 0x15379c" (identifier "puVar54") (+ "+") (number_literal "0x15379c")) () ")"))))) (; ";")) (goto_statement "goto LAB_0025663c;" (goto "goto") (statement_identifier "LAB_0025663c") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }" (else "else") (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }\nLAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);\n          if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }" ({ "{") (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38)" (identifier "uVar48") (= "=") (call_expression "(**(code **)(puVar54 + 0x15379c))(0x38)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x15379c)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x15379c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15379c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15379c)" (( "(") (binary_expression "puVar54 + 0x15379c" (identifier "puVar54") (+ "+") (number_literal "0x15379c")) () ")"))))) () ")")) (argument_list "(0x38)" (( "(") (number_literal "0x38") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -31000" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-31000")) (, ",") (identifier "uVar48") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (if_statement "if (*(int *)(puVar50 + 0x12e) != 0) {\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x12e) != 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0x12e) != 0" (pointer_expression "*(int *)(puVar50 + 0x12e)" (* "*") (cast_expression "(int *)(puVar50 + 0x12e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x12e)" (( "(") (binary_expression "puVar50 + 0x12e" (identifier "puVar50") (+ "+") (number_literal "0x12e")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar55 = *(code **)(puVar54 + 0x15379c);\n            goto LAB_002565f0;\n          }" ({ "{") (expression_statement "pcVar55 = *(code **)(puVar54 + 0x15379c);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x15379c)" (identifier "pcVar55") (= "=") (pointer_expression "*(code **)(puVar54 + 0x15379c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15379c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15379c)" (( "(") (binary_expression "puVar54 + 0x15379c" (identifier "puVar54") (+ "+") (number_literal "0x15379c")) () ")"))))) (; ";")) (goto_statement "goto LAB_002565f0;" (goto "goto") (statement_identifier "LAB_002565f0") (; ";")) (} "}"))) (labeled_statement "LAB_00255a3c:\n          pcVar55 = *(code **)(puVar54 + 0x15379c);" (statement_identifier "LAB_00255a3c") (: ":") (expression_statement "pcVar55 = *(code **)(puVar54 + 0x15379c);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x15379c)" (identifier "pcVar55") (= "=") (pointer_expression "*(code **)(puVar54 + 0x15379c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15379c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15379c)" (( "(") (binary_expression "puVar54 + 0x15379c" (identifier "puVar54") (+ "+") (number_literal "0x15379c")) () ")"))))) (; ";"))) (if_statement "if (*(int *)(puVar50 + 4) != 0) {\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 4) != 0)" (( "(") (binary_expression "*(int *)(puVar50 + 4) != 0" (pointer_expression "*(int *)(puVar50 + 4)" (* "*") (cast_expression "(int *)(puVar50 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 4)" (( "(") (binary_expression "puVar50 + 4" (identifier "puVar50") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);\n            dVar57 = (double)*(int *)(puVar50 + 6);\n            if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" ({ "{") (labeled_statement "LAB_0025663c:\n            uVar48 = (*pcVar55)(0xe);" (statement_identifier "LAB_0025663c") (: ":") (expression_statement "uVar48 = (*pcVar55)(0xe);" (assignment_expression "uVar48 = (*pcVar55)(0xe)" (identifier "uVar48") (= "=") (call_expression "(*pcVar55)(0xe)" (parenthesized_expression "(*pcVar55)" (( "(") (pointer_expression "*pcVar55" (* "*") (identifier "pcVar55")) () ")")) (argument_list "(0xe)" (( "(") (number_literal "0xe") () ")")))) (; ";"))) (expression_statement "dVar57 = (double)*(int *)(puVar50 + 6);" (assignment_expression "dVar57 = (double)*(int *)(puVar50 + 6)" (identifier "dVar57") (= "=") (cast_expression "(double)*(int *)(puVar50 + 6)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(puVar50 + 6)" (* "*") (cast_expression "(int *)(puVar50 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 6)" (( "(") (binary_expression "puVar50 + 6" (identifier "puVar50") (+ "+") (number_literal "6")) () ")")))))) (; ";")) (if_statement "if (*(int *)(puVar50 + 6) < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 6) < 0)" (( "(") (binary_expression "*(int *)(puVar50 + 6) < 0" (pointer_expression "*(int *)(puVar50 + 6)" (* "*") (cast_expression "(int *)(puVar50 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 6)" (( "(") (binary_expression "puVar50 + 6" (identifier "puVar50") (+ "+") (number_literal "6")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" ({ "{") (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" (identifier "dVar57") (= "=") (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" (identifier "dVar57") (+ "+") (pointer_expression "*(double *)(iVar47 + 0x1418)" (* "*") (cast_expression "(double *)(iVar47 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + 0x1418)" (( "(") (binary_expression "iVar47 + 0x1418" (identifier "iVar47") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x78f8" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x78f8")) (, ",") (identifier "uVar48") (, ",") (identifier "dVar57") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (*(int *)(puVar50 + 0x100) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x100) != 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0x100) != 0" (pointer_expression "*(int *)(puVar50 + 0x100)" (* "*") (cast_expression "(int *)(puVar50 + 0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x100)" (( "(") (binary_expression "puVar50 + 0x100" (identifier "puVar50") (+ "+") (number_literal "0x100")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" ({ "{") (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41)" (identifier "uVar48") (= "=") (call_expression "(**(code **)(puVar54 + 0x15379c))(0x41)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x15379c)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x15379c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15379c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15379c)" (( "(") (binary_expression "puVar54 + 0x15379c" (identifier "puVar54") (+ "+") (number_literal "0x15379c")) () ")"))))) () ")")) (argument_list "(0x41)" (( "(") (number_literal "0x41") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x78d8" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x78d8")) (, ",") (identifier "uVar48") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (} "}"))) (expression_statement "dVar65 = *(double *)(puVar50 + 0x10c);" (assignment_expression "dVar65 = *(double *)(puVar50 + 0x10c)" (identifier "dVar65") (= "=") (pointer_expression "*(double *)(puVar50 + 0x10c)" (* "*") (cast_expression "(double *)(puVar50 + 0x10c)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x10c)" (( "(") (binary_expression "puVar50 + 0x10c" (identifier "puVar50") (+ "+") (number_literal "0x10c")) () ")"))))) (; ";")) (expression_statement "dVar61 = *(double *)(puVar50 + 0x110);" (assignment_expression "dVar61 = *(double *)(puVar50 + 0x110)" (identifier "dVar61") (= "=") (pointer_expression "*(double *)(puVar50 + 0x110)" (* "*") (cast_expression "(double *)(puVar50 + 0x110)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x110)" (( "(") (binary_expression "puVar50 + 0x110" (identifier "puVar50") (+ "+") (number_literal "0x110")) () ")"))))) (; ";")) (if_statement "if ((dVar65 != 0.0) || (dVar61 != 0.0)) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }" (if "if") (parenthesized_expression "((dVar65 != 0.0) || (dVar61 != 0.0))" (( "(") (binary_expression "(dVar65 != 0.0) || (dVar61 != 0.0)" (parenthesized_expression "(dVar65 != 0.0)" (( "(") (binary_expression "dVar65 != 0.0" (identifier "dVar65") (!= "!=") (number_literal "0.0")) () ")")) (|| "||") (parenthesized_expression "(dVar61 != 0.0)" (( "(") (binary_expression "dVar61 != 0.0" (identifier "dVar61") (!= "!=") (number_literal "0.0")) () ")"))) () ")")) (compound_statement "{\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n          dVar56 = dVar61;\n        }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x78cc" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x78cc")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (expression_statement "dVar57 = dVar65;" (assignment_expression "dVar57 = dVar65" (identifier "dVar57") (= "=") (identifier "dVar65")) (; ";")) (expression_statement "dVar56 = dVar61;" (assignment_expression "dVar56 = dVar61" (identifier "dVar56") (= "=") (identifier "dVar61")) (; ";")) (} "}"))) (expression_statement "iVar32 = *(int *)(puVar50 + 0x114);" (assignment_expression "iVar32 = *(int *)(puVar50 + 0x114)" (identifier "iVar32") (= "=") (pointer_expression "*(int *)(puVar50 + 0x114)" (* "*") (cast_expression "(int *)(puVar50 + 0x114)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x114)" (( "(") (binary_expression "puVar50 + 0x114" (identifier "puVar50") (+ "+") (number_literal "0x114")) () ")"))))) (; ";")) (expression_statement "iVar34 = *(int *)(puVar50 + 0x116);" (assignment_expression "iVar34 = *(int *)(puVar50 + 0x116)" (identifier "iVar34") (= "=") (pointer_expression "*(int *)(puVar50 + 0x116)" (* "*") (cast_expression "(int *)(puVar50 + 0x116)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x116)" (( "(") (binary_expression "puVar50 + 0x116" (identifier "puVar50") (+ "+") (number_literal "0x116")) () ")"))))) (; ";")) (expression_statement "iVar39 = *(int *)(puVar50 + 0x118);" (assignment_expression "iVar39 = *(int *)(puVar50 + 0x118)" (identifier "iVar39") (= "=") (pointer_expression "*(int *)(puVar50 + 0x118)" (* "*") (cast_expression "(int *)(puVar50 + 0x118)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x118)" (( "(") (binary_expression "puVar50 + 0x118" (identifier "puVar50") (+ "+") (number_literal "0x118")) () ")"))))) (; ";")) (expression_statement "iVar24 = *(int *)(puVar50 + 0x11a);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x11a)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar50 + 0x11a)" (* "*") (cast_expression "(int *)(puVar50 + 0x11a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x11a)" (( "(") (binary_expression "puVar50 + 0x11a" (identifier "puVar50") (+ "+") (number_literal "0x11a")) () ")"))))) (; ";")) (if_statement "if ((iVar32 == 0) && (iVar34 == 0)) {\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }\n        else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" (if "if") (parenthesized_expression "((iVar32 == 0) && (iVar34 == 0))" (( "(") (binary_expression "(iVar32 == 0) && (iVar34 == 0)" (parenthesized_expression "(iVar32 == 0)" (( "(") (binary_expression "iVar32 == 0" (identifier "iVar32") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar34 == 0)" (( "(") (binary_expression "iVar34 == 0" (identifier "iVar34") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }\n        }" ({ "{") (if_statement "if ((iVar39 != 0) || (iVar24 != 0)) {\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }" (if "if") (parenthesized_expression "((iVar39 != 0) || (iVar24 != 0))" (( "(") (binary_expression "(iVar39 != 0) || (iVar24 != 0)" (parenthesized_expression "(iVar39 != 0)" (( "(") (binary_expression "iVar39 != 0" (identifier "iVar39") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            uVar48 = SUB84(dVar57,0);\n            dVar57 = (double)CONCAT44(iVar24,uVar48);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);\n            goto LAB_00255ed4;\n          }" ({ "{") (expression_statement "uVar48 = SUB84(dVar57,0);" (assignment_expression "uVar48 = SUB84(dVar57,0)" (identifier "uVar48") (= "=") (call_expression "SUB84(dVar57,0)" (identifier "SUB84") (argument_list "(dVar57,0)" (( "(") (identifier "dVar57") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "dVar57 = (double)CONCAT44(iVar24,uVar48);" (assignment_expression "dVar57 = (double)CONCAT44(iVar24,uVar48)" (identifier "dVar57") (= "=") (cast_expression "(double)CONCAT44(iVar24,uVar48)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(iVar24,uVar48)" (identifier "CONCAT44") (argument_list "(iVar24,uVar48)" (( "(") (identifier "iVar24") (, ",") (identifier "uVar48") () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,\n                       uVar48,dVar56)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7898" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7898")) (, ",") (identifier "iVar39") (, ",") (identifier "iVar24") (, ",") (identifier "uVar48") (, ",") (identifier "dVar56") () ")"))) (; ";")) (goto_statement "goto LAB_00255ed4;" (goto "goto") (statement_identifier "LAB_00255ed4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" (else "else") (compound_statement "{\n          dVar56 = (double)iVar34;\n          if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar57 = (double)iVar32;\n          if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);\nLAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" ({ "{") (expression_statement "dVar56 = (double)iVar34;" (assignment_expression "dVar56 = (double)iVar34" (identifier "dVar56") (= "=") (cast_expression "(double)iVar34" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar34"))) (; ";")) (if_statement "if (iVar34 < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }" (if "if") (parenthesized_expression "(iVar34 < 0)" (( "(") (binary_expression "iVar34 < 0" (identifier "iVar34") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }" ({ "{") (expression_statement "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418)" (identifier "dVar56") (= "=") (binary_expression "dVar56 + *(double *)(iVar47 + 0x1418)" (identifier "dVar56") (+ "+") (pointer_expression "*(double *)(iVar47 + 0x1418)" (* "*") (cast_expression "(double *)(iVar47 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + 0x1418)" (( "(") (binary_expression "iVar47 + 0x1418" (identifier "iVar47") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar57 = (double)iVar32;" (assignment_expression "dVar57 = (double)iVar32" (identifier "dVar57") (= "=") (cast_expression "(double)iVar32" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar32"))) (; ";")) (if_statement "if (iVar32 < 0) {\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }" (if "if") (parenthesized_expression "(iVar32 < 0)" (( "(") (binary_expression "iVar32 < 0" (identifier "iVar32") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n          }" ({ "{") (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" (identifier "dVar57") (= "=") (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" (identifier "dVar57") (+ "+") (pointer_expression "*(double *)(iVar47 + 0x1418)" (* "*") (cast_expression "(double *)(iVar47 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + 0x1418)" (( "(") (binary_expression "iVar47 + 0x1418" (identifier "iVar47") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56\n                     ,(double)iVar39,(double)iVar24)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x78b8" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x78b8")) (, ",") (identifier "iVar39") (, ",") (identifier "dVar57") (, ",") (identifier "dVar56") (, ",") (cast_expression "(double)iVar39" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar39")) (, ",") (cast_expression "(double)iVar24" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar24")) () ")"))) (; ";")) (labeled_statement "LAB_00255ed4:\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (statement_identifier "LAB_00255ed4") (: ":") (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";"))) (} "}")))) (expression_statement "iVar24 = *(int *)(puVar50 + 0x14e);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x14e)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar50 + 0x14e)" (* "*") (cast_expression "(int *)(puVar50 + 0x14e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x14e)" (( "(") (binary_expression "puVar50 + 0x14e" (identifier "puVar50") (+ "+") (number_literal "0x14e")) () ")"))))) (; ";")) (if_statement "if ((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }" (if "if") (parenthesized_expression "((*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0))" (( "(") (binary_expression "(*(int *)(puVar50 + 0x14c) != 0) ||\n           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)" (parenthesized_expression "(*(int *)(puVar50 + 0x14c) != 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0x14c) != 0" (pointer_expression "*(int *)(puVar50 + 0x14c)" (* "*") (cast_expression "(int *)(puVar50 + 0x14c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x14c)" (( "(") (binary_expression "puVar50 + 0x14c" (identifier "puVar50") (+ "+") (number_literal "0x14c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)" (( "(") (comma_expression "pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x153eac)" (identifier "pcVar55") (= "=") (pointer_expression "*(code **)(puVar54 + 0x153eac)" (* "*") (cast_expression "(code **)(puVar54 + 0x153eac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153eac)" (( "(") (binary_expression "puVar54 + 0x153eac" (identifier "puVar54") (+ "+") (number_literal "0x153eac")) () ")"))))) (, ",") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pcVar55 = *(code **)(puVar54 + 0x153eac);\n        }" ({ "{") (expression_statement "dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));" (assignment_expression "dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0))" (identifier "dVar57") (= "=") (cast_expression "(double)CONCAT44(iVar24,SUB84(dVar57,0))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(iVar24,SUB84(dVar57,0))" (identifier "CONCAT44") (argument_list "(iVar24,SUB84(dVar57,0))" (( "(") (identifier "iVar24") (, ",") (call_expression "SUB84(dVar57,0)" (identifier "SUB84") (argument_list "(dVar57,0)" (( "(") (identifier "dVar57") (, ",") (number_literal "0") () ")"))) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,\n                     *(int *)(puVar50 + 0x14c),iVar24)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7888" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7888")) (, ",") (pointer_expression "*(int *)(puVar50 + 0x14c)" (* "*") (cast_expression "(int *)(puVar50 + 0x14c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x14c)" (( "(") (binary_expression "puVar50 + 0x14c" (identifier "puVar50") (+ "+") (number_literal "0x14c")) () ")")))) (, ",") (identifier "iVar24") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x153eac);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x153eac)" (identifier "pcVar55") (= "=") (pointer_expression "*(code **)(puVar54 + 0x153eac)" (* "*") (cast_expression "(code **)(puVar54 + 0x153eac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153eac)" (( "(") (binary_expression "puVar54 + 0x153eac" (identifier "puVar54") (+ "+") (number_literal "0x153eac")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar24 = (*pcVar55)(puVar50);" (assignment_expression "iVar24 = (*pcVar55)(puVar50)" (identifier "iVar24") (= "=") (call_expression "(*pcVar55)(puVar50)" (parenthesized_expression "(*pcVar55)" (( "(") (pointer_expression "*pcVar55" (* "*") (identifier "pcVar55")) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")")))) (; ";")) (expression_statement "iVar32 = *(int *)(puVar50 + 0x136);" (assignment_expression "iVar32 = *(int *)(puVar50 + 0x136)" (identifier "iVar32") (= "=") (pointer_expression "*(int *)(puVar50 + 0x136)" (* "*") (cast_expression "(int *)(puVar50 + 0x136)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x136)" (( "(") (binary_expression "puVar50 + 0x136" (identifier "puVar50") (+ "+") (number_literal "0x136")) () ")"))))) (; ";")) (if_statement "if (iVar24 == 0) {\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }\n        else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);\n          if (iVar24 != 0) goto LAB_00255b3c;\n          if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x13e);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          iVar24 = *(int *)(puVar50 + 0x138);\n          if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n          if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }\n        }" ({ "{") (expression_statement "iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);" (assignment_expression "iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50)" (identifier "iVar24") (= "=") (call_expression "(**(code **)(puVar54 + 0x1536e8))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1536e8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1536e8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1536e8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1536e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1536e8)" (( "(") (binary_expression "puVar54 + 0x1536e8" (identifier "puVar54") (+ "+") (number_literal "0x1536e8")) () ")"))))) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")")))) (; ";")) (if_statement "if (iVar24 != 0) goto LAB_00255b3c;" (if "if") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00255b3c;" (goto "goto") (statement_identifier "LAB_00255b3c") (; ";"))) (if_statement "if (iVar32 != 0) {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" (if "if") (parenthesized_expression "(iVar32 != 0)" (( "(") (binary_expression "iVar32 != 0" (identifier "iVar32") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" ({ "{") (expression_statement "dVar57 = (double)iVar32;" (assignment_expression "dVar57 = (double)iVar32" (identifier "dVar57") (= "=") (cast_expression "(double)iVar32" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar32"))) (; ";")) (if_statement "if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" (if "if") (parenthesized_expression "(iVar32 < 0)" (( "(") (binary_expression "iVar32 < 0" (identifier "iVar32") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" ({ "{") (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" (identifier "dVar57") (= "=") (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" (identifier "dVar57") (+ "+") (pointer_expression "*(double *)(iVar47 + 0x1418)" (* "*") (cast_expression "(double *)(iVar47 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + 0x1418)" (( "(") (binary_expression "iVar47 + 0x1418" (identifier "iVar47") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77f4" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x77f4")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar24 = *(int *)(puVar50 + 0x13e);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x13e)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar50 + 0x13e)" (* "*") (cast_expression "(int *)(puVar50 + 0x13e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x13e)" (( "(") (binary_expression "puVar50 + 0x13e" (identifier "puVar50") (+ "+") (number_literal "0x13e")) () ")"))))) (; ";")) (if_statement "if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" (if "if") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" ({ "{") (expression_statement "dVar57 = (double)iVar24;" (assignment_expression "dVar57 = (double)iVar24" (identifier "dVar57") (= "=") (cast_expression "(double)iVar24" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar24"))) (; ";")) (if_statement "if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" (if "if") (parenthesized_expression "(iVar24 < 0)" (( "(") (binary_expression "iVar24 < 0" (identifier "iVar24") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" ({ "{") (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" (identifier "dVar57") (= "=") (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" (identifier "dVar57") (+ "+") (pointer_expression "*(double *)(iVar47 + 0x1418)" (* "*") (cast_expression "(double *)(iVar47 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + 0x1418)" (( "(") (binary_expression "iVar47 + 0x1418" (identifier "iVar47") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77e4" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x77e4")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar24 = *(int *)(puVar50 + 0x138);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x138)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar50 + 0x138)" (* "*") (cast_expression "(int *)(puVar50 + 0x138)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x138)" (( "(") (binary_expression "puVar50 + 0x138" (identifier "puVar50") (+ "+") (number_literal "0x138")) () ")"))))) (; ";")) (if_statement "if (iVar24 != 0) {\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" (if "if") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            dVar57 = (double)iVar24;\n            if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" ({ "{") (expression_statement "dVar57 = (double)iVar24;" (assignment_expression "dVar57 = (double)iVar24" (identifier "dVar57") (= "=") (cast_expression "(double)iVar24" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar24"))) (; ";")) (if_statement "if (iVar24 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" (if "if") (parenthesized_expression "(iVar24 < 0)" (( "(") (binary_expression "iVar24 < 0" (identifier "iVar24") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" ({ "{") (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" (identifier "dVar57") (= "=") (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" (identifier "dVar57") (+ "+") (pointer_expression "*(double *)(iVar47 + 0x1418)" (* "*") (cast_expression "(double *)(iVar47 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + 0x1418)" (( "(") (binary_expression "iVar47 + 0x1418" (identifier "iVar47") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77d0" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x77d0")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar50 + 0x13c) != 100) {\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x13c) != 100)" (( "(") (binary_expression "*(int *)(puVar50 + 0x13c) != 100" (pointer_expression "*(int *)(puVar50 + 0x13c)" (* "*") (cast_expression "(int *)(puVar50 + 0x13c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x13c)" (( "(") (binary_expression "puVar50 + 0x13c" (identifier "puVar50") (+ "+") (number_literal "0x13c")) () ")")))) (!= "!=") (number_literal "100")) () ")")) (compound_statement "{\n            dVar57 = (double)*(int *)(puVar50 + 0x13c);\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);\n            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          }" ({ "{") (expression_statement "dVar57 = (double)*(int *)(puVar50 + 0x13c);" (assignment_expression "dVar57 = (double)*(int *)(puVar50 + 0x13c)" (identifier "dVar57") (= "=") (cast_expression "(double)*(int *)(puVar50 + 0x13c)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(puVar50 + 0x13c)" (* "*") (cast_expression "(int *)(puVar50 + 0x13c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x13c)" (( "(") (binary_expression "puVar50 + 0x13c" (identifier "puVar50") (+ "+") (number_literal "0x13c")) () ")")))))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x780c" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x780c")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" (else "else") (compound_statement "{\nLAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);\n          if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }\n          dVar65 = (double)*(int *)(puVar50 + 0x138);\n          if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }\n          if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" ({ "{") (labeled_statement "LAB_00255b3c:\n          dVar56 = (double)*(int *)(puVar50 + 0x13e);" (statement_identifier "LAB_00255b3c") (: ":") (expression_statement "dVar56 = (double)*(int *)(puVar50 + 0x13e);" (assignment_expression "dVar56 = (double)*(int *)(puVar50 + 0x13e)" (identifier "dVar56") (= "=") (cast_expression "(double)*(int *)(puVar50 + 0x13e)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(puVar50 + 0x13e)" (* "*") (cast_expression "(int *)(puVar50 + 0x13e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x13e)" (( "(") (binary_expression "puVar50 + 0x13e" (identifier "puVar50") (+ "+") (number_literal "0x13e")) () ")")))))) (; ";"))) (if_statement "if (*(int *)(puVar50 + 0x13e) < 0) {\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x13e) < 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0x13e) < 0" (pointer_expression "*(int *)(puVar50 + 0x13e)" (* "*") (cast_expression "(int *)(puVar50 + 0x13e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x13e)" (( "(") (binary_expression "puVar50 + 0x13e" (identifier "puVar50") (+ "+") (number_literal "0x13e")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);\n          }" ({ "{") (expression_statement "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar56 = dVar56 + *(double *)(iVar47 + 0x1418)" (identifier "dVar56") (= "=") (binary_expression "dVar56 + *(double *)(iVar47 + 0x1418)" (identifier "dVar56") (+ "+") (pointer_expression "*(double *)(iVar47 + 0x1418)" (* "*") (cast_expression "(double *)(iVar47 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + 0x1418)" (( "(") (binary_expression "iVar47 + 0x1418" (identifier "iVar47") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar65 = (double)*(int *)(puVar50 + 0x138);" (assignment_expression "dVar65 = (double)*(int *)(puVar50 + 0x138)" (identifier "dVar65") (= "=") (cast_expression "(double)*(int *)(puVar50 + 0x138)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(puVar50 + 0x138)" (* "*") (cast_expression "(int *)(puVar50 + 0x138)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x138)" (( "(") (binary_expression "puVar50 + 0x138" (identifier "puVar50") (+ "+") (number_literal "0x138")) () ")")))))) (; ";")) (if_statement "if (*(int *)(puVar50 + 0x138) < 0) {\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x138) < 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0x138) < 0" (pointer_expression "*(int *)(puVar50 + 0x138)" (* "*") (cast_expression "(int *)(puVar50 + 0x138)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x138)" (( "(") (binary_expression "puVar50 + 0x138" (identifier "puVar50") (+ "+") (number_literal "0x138")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);\n          }" ({ "{") (expression_statement "dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar65 = dVar65 + *(double *)(iVar47 + 0x1418)" (identifier "dVar65") (= "=") (binary_expression "dVar65 + *(double *)(iVar47 + 0x1418)" (identifier "dVar65") (+ "+") (pointer_expression "*(double *)(iVar47 + 0x1418)" (* "*") (cast_expression "(double *)(iVar47 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + 0x1418)" (( "(") (binary_expression "iVar47 + 0x1418" (identifier "iVar47") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (if_statement "if (iVar32 == 0) {\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }\n          else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }" (if "if") (parenthesized_expression "(iVar32 == 0)" (( "(") (binary_expression "iVar32 == 0" (identifier "iVar32") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);\n            dVar57 = dVar56;\n            dVar56 = dVar65;\n          }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7870" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7870")) () ")"))) (; ";")) (expression_statement "dVar57 = dVar56;" (assignment_expression "dVar57 = dVar56" (identifier "dVar57") (= "=") (identifier "dVar56")) (; ";")) (expression_statement "dVar56 = dVar65;" (assignment_expression "dVar56 = dVar65" (identifier "dVar56") (= "=") (identifier "dVar65")) (; ";")) (} "}")) (else_clause "else {\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }" (else "else") (compound_statement "{\n            dVar57 = (double)iVar32;\n            if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }\n            (**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);\n          }" ({ "{") (expression_statement "dVar57 = (double)iVar32;" (assignment_expression "dVar57 = (double)iVar32" (identifier "dVar57") (= "=") (cast_expression "(double)iVar32" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar32"))) (; ";")) (if_statement "if (iVar32 < 0) {\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" (if "if") (parenthesized_expression "(iVar32 < 0)" (( "(") (binary_expression "iVar32 < 0" (identifier "iVar32") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);\n            }" ({ "{") (expression_statement "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(iVar47 + 0x1418)" (identifier "dVar57") (= "=") (binary_expression "dVar57 + *(double *)(iVar47 + 0x1418)" (identifier "dVar57") (+ "+") (pointer_expression "*(double *)(iVar47 + 0x1418)" (* "*") (cast_expression "(double *)(iVar47 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + 0x1418)" (( "(") (binary_expression "iVar47 + 0x1418" (identifier "iVar47") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7838" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7838")) () ")"))) (; ";")) (} "}")))) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (} "}")))) (if_statement "if (*(int *)(puVar50 + 0x130) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x130) != 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0x130) != 0" (pointer_expression "*(int *)(puVar50 + 0x130)" (* "*") (cast_expression "(int *)(puVar50 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x130)" (( "(") (binary_expression "puVar50 + 0x130" (identifier "puVar50") (+ "+") (number_literal "0x130")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" ({ "{") (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21)" (identifier "uVar48") (= "=") (call_expression "(**(code **)(puVar54 + 0x15379c))(0x21)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x15379c)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x15379c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15379c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15379c)" (( "(") (binary_expression "puVar54 + 0x15379c" (identifier "puVar54") (+ "+") (number_literal "0x15379c")) () ")"))))) () ")")) (argument_list "(0x21)" (( "(") (number_literal "0x21") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77c0" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x77c0")) (, ",") (identifier "uVar48") (, ",") (identifier "dVar57") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar50 + 0x134) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x134) != 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0x134) != 0" (pointer_expression "*(int *)(puVar50 + 0x134)" (* "*") (cast_expression "(int *)(puVar50 + 0x134)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x134)" (( "(") (binary_expression "puVar50 + 0x134" (identifier "puVar50") (+ "+") (number_literal "0x134")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" ({ "{") (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15)" (identifier "uVar48") (= "=") (call_expression "(**(code **)(puVar54 + 0x15379c))(0x15)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x15379c)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x15379c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15379c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15379c)" (( "(") (binary_expression "puVar54 + 0x15379c" (identifier "puVar54") (+ "+") (number_literal "0x15379c")) () ")"))))) () ")")) (argument_list "(0x15)" (( "(") (number_literal "0x15") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77b4" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x77b4")) (, ",") (identifier "uVar48") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar50 + 0xfc) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0xfc) != 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0xfc) != 0" (pointer_expression "*(int *)(puVar50 + 0xfc)" (* "*") (cast_expression "(int *)(puVar50 + 0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0xfc)" (( "(") (binary_expression "puVar50 + 0xfc" (identifier "puVar50") (+ "+") (number_literal "0xfc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" ({ "{") (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23)" (identifier "uVar48") (= "=") (call_expression "(**(code **)(puVar54 + 0x15379c))(0x23)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x15379c)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x15379c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15379c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15379c)" (( "(") (binary_expression "puVar54 + 0x15379c" (identifier "puVar54") (+ "+") (number_literal "0x15379c")) () ")"))))) () ")")) (argument_list "(0x23)" (( "(") (number_literal "0x23") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x77a8" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x77a8")) (, ",") (identifier "uVar48") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (} "}"))) (expression_statement "dVar65 = *(double *)(puVar50 + 200);" (assignment_expression "dVar65 = *(double *)(puVar50 + 200)" (identifier "dVar65") (= "=") (pointer_expression "*(double *)(puVar50 + 200)" (* "*") (cast_expression "(double *)(puVar50 + 200)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 200)" (( "(") (binary_expression "puVar50 + 200" (identifier "puVar50") (+ "+") (number_literal "200")) () ")"))))) (; ";")) (if_statement "if (dVar65 != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }" (if "if") (parenthesized_expression "(dVar65 != 0.0)" (( "(") (binary_expression "dVar65 != 0.0" (identifier "dVar65") (!= "!=") (number_literal "0.0")) () ")")) (compound_statement "{\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar57 = dVar65;\n        }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7790" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7790")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (expression_statement "dVar57 = dVar65;" (assignment_expression "dVar57 = dVar65" (identifier "dVar57") (= "=") (identifier "dVar65")) (; ";")) (} "}"))) (if_statement "if (*(double *)(puVar50 + 0xf0) != 0.0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" (if "if") (parenthesized_expression "(*(double *)(puVar50 + 0xf0) != 0.0)" (( "(") (binary_expression "*(double *)(puVar50 + 0xf0) != 0.0" (pointer_expression "*(double *)(puVar50 + 0xf0)" (* "*") (cast_expression "(double *)(puVar50 + 0xf0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0xf0)" (( "(") (binary_expression "puVar50 + 0xf0" (identifier "puVar50") (+ "+") (number_literal "0xf0")) () ")")))) (!= "!=") (number_literal "0.0")) () ")")) (compound_statement "{\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          dVar56 = *(double *)(puVar50 + 0xf4);\n          dVar57 = *(double *)(puVar50 + 0xf0);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7784" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7784")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (expression_statement "dVar56 = *(double *)(puVar50 + 0xf4);" (assignment_expression "dVar56 = *(double *)(puVar50 + 0xf4)" (identifier "dVar56") (= "=") (pointer_expression "*(double *)(puVar50 + 0xf4)" (* "*") (cast_expression "(double *)(puVar50 + 0xf4)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0xf4)" (( "(") (binary_expression "puVar50 + 0xf4" (identifier "puVar50") (+ "+") (number_literal "0xf4")) () ")"))))) (; ";")) (expression_statement "dVar57 = *(double *)(puVar50 + 0xf0);" (assignment_expression "dVar57 = *(double *)(puVar50 + 0xf0)" (identifier "dVar57") (= "=") (pointer_expression "*(double *)(puVar50 + 0xf0)" (* "*") (cast_expression "(double *)(puVar50 + 0xf0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0xf0)" (( "(") (binary_expression "puVar50 + 0xf0" (identifier "puVar50") (+ "+") (number_literal "0xf0")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7748" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7748")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar50 + 8) != 0) {\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 8) != 0)" (( "(") (binary_expression "*(int *)(puVar50 + 8) != 0" (pointer_expression "*(int *)(puVar50 + 8)" (* "*") (cast_expression "(int *)(puVar50 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 8)" (( "(") (binary_expression "puVar50 + 8" (identifier "puVar50") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" ({ "{") (expression_statement "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36)" (identifier "uVar48") (= "=") (call_expression "(**(code **)(puVar54 + 0x15379c))(0x36)" (parenthesized_expression "(**(code **)(puVar54 + 0x15379c))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x15379c)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x15379c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15379c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15379c)" (( "(") (binary_expression "puVar54 + 0x15379c" (identifier "puVar54") (+ "+") (number_literal "0x15379c")) () ")"))))) () ")")) (argument_list "(0x36)" (( "(") (number_literal "0x36") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    );" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    )" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56\n                    )" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7734" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7734")) (, ",") (identifier "uVar48") (, ",") (identifier "dVar57") (, ",") (identifier "dVar56") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar50 + 0xfe) == 0) {\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0xfe) == 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0xfe) == 0" (pointer_expression "*(int *)(puVar50 + 0xfe)" (* "*") (cast_expression "(int *)(puVar50 + 0xfe)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0xfe)" (( "(") (binary_expression "puVar50 + 0xfe" (identifier "puVar50") (+ "+") (number_literal "0xfe")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }" ({ "{") (labeled_statement "LAB_00255c28:\n          puVar8 = *(ushort **)(puVar50 + 0x102);" (statement_identifier "LAB_00255c28") (: ":") (expression_statement "puVar8 = *(ushort **)(puVar50 + 0x102);" (assignment_expression "puVar8 = *(ushort **)(puVar50 + 0x102)" (identifier "puVar8") (= "=") (pointer_expression "*(ushort **)(puVar50 + 0x102)" (* "*") (cast_expression "(ushort **)(puVar50 + 0x102)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar50 + 0x102)" (( "(") (binary_expression "puVar50 + 0x102" (identifier "puVar50") (+ "+") (number_literal "0x102")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }" (else "else") (compound_statement "{\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          if (iVar24 == 0) goto LAB_00255c28;\n          iVar32 = *(int *)(puVar54 + 0x153388);\n          do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);\n          puVar8 = *(ushort **)(puVar50 + 0x102);\n        }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x1538c8))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x1538c8))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1538c8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1538c8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1538c8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1538c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1538c8)" (( "(") (binary_expression "puVar54 + 0x1538c8" (identifier "puVar54") (+ "+") (number_literal "0x1538c8")) () ")"))))) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")"))) (; ";")) (expression_statement "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);" (assignment_expression "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50)" (identifier "iVar24") (= "=") (call_expression "(**(code **)(puVar54 + 0x153948))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153948))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153948)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153948)" (* "*") (cast_expression "(code **)(puVar54 + 0x153948)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153948)" (( "(") (binary_expression "puVar54 + 0x153948" (identifier "puVar54") (+ "+") (number_literal "0x153948")) () ")"))))) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")")))) (; ";")) (if_statement "if (iVar24 == 0) goto LAB_00255c28;" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00255c28;" (goto "goto") (statement_identifier "LAB_00255c28") (; ";"))) (expression_statement "iVar32 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar32 = *(int *)(puVar54 + 0x153388)" (identifier "iVar32") (= "=") (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")"))))) (; ";")) (do_statement "do {\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          } while (iVar24 != 0);" (do "do") (compound_statement "{\n            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n          }" ({ "{") (expression_statement "iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);" (assignment_expression "iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24)" (identifier "iVar34") (= "=") (call_expression "(**(code **)(puVar54 + 0x153e14))(puVar50,iVar24)" (parenthesized_expression "(**(code **)(puVar54 + 0x153e14))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153e14)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153e14)" (* "*") (cast_expression "(code **)(puVar54 + 0x153e14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153e14)" (( "(") (binary_expression "puVar54 + 0x153e14" (identifier "puVar54") (+ "+") (number_literal "0x153e14")) () ")"))))) () ")")) (argument_list "(puVar50,iVar24)" (( "(") (identifier "puVar50") (, ",") (identifier "iVar24") () ")")))) (; ";")) (if_statement "if (iVar34 != 0) {\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }" (if "if") (parenthesized_expression "(iVar34 != 0)" (( "(") (binary_expression "iVar34 != 0" (identifier "iVar34") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);\n              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n            }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,iVar32 + -0x7724,iVar24)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "iVar32 + -0x7724" (identifier "iVar32") (+ "+") (number_literal "-0x7724")) (, ",") (identifier "iVar24") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);" (assignment_expression "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50)" (identifier "iVar24") (= "=") (call_expression "(**(code **)(puVar54 + 0x153948))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153948))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153948)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153948)" (* "*") (cast_expression "(code **)(puVar54 + 0x153948)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153948)" (( "(") (binary_expression "puVar54 + 0x153948" (identifier "puVar54") (+ "+") (number_literal "0x153948")) () ")"))))) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "puVar8 = *(ushort **)(puVar50 + 0x102);" (assignment_expression "puVar8 = *(ushort **)(puVar50 + 0x102)" (identifier "puVar8") (= "=") (pointer_expression "*(ushort **)(puVar50 + 0x102)" (* "*") (cast_expression "(ushort **)(puVar50 + 0x102)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar50 + 0x102)" (( "(") (binary_expression "puVar50 + 0x102" (identifier "puVar50") (+ "+") (number_literal "0x102")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (puVar8 != (ushort *)0x0) {\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" (if "if") (parenthesized_expression "(puVar8 != (ushort *)0x0)" (( "(") (binary_expression "puVar8 != (ushort *)0x0" (identifier "puVar8") (!= "!=") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          (**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n        }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);" (call_expression "(**(code **)(puVar54 + 0x1537b8))\n                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7718" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7718")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar54 + 0x1536d0))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x1536d0))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1536d0))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1536d0)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1536d0)" (* "*") (cast_expression "(code **)(puVar54 + 0x1536d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1536d0)" (( "(") (binary_expression "puVar54 + 0x1536d0" (identifier "puVar54") (+ "+") (number_literal "0x1536d0")) () ")"))))) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")"))) (; ";")) (expression_statement "puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);" (assignment_expression "puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50)" (identifier "puVar9") (= "=") (cast_expression "(ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar54 + 0x1542fc))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1542fc))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1542fc)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1542fc)" (* "*") (cast_expression "(code **)(puVar54 + 0x1542fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1542fc)" (( "(") (binary_expression "puVar54 + 0x1542fc" (identifier "puVar54") (+ "+") (number_literal "0x1542fc")) () ")"))))) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")"))))) (; ";")) (if_statement "if (puVar9 != (ushort *)0x0) {\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }" (if "if") (parenthesized_expression "(puVar9 != (ushort *)0x0)" (( "(") (binary_expression "puVar9 != (ushort *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar24 = *(int *)(puVar54 + 0x153388);\nLAB_00255c90:\n          puVar8 = puVar9;\n          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);\n          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);\n          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);\n          if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }\n          goto LAB_00255d60;\n        }" ({ "{") (expression_statement "iVar24 = *(int *)(puVar54 + 0x153388);" (assignment_expression "iVar24 = *(int *)(puVar54 + 0x153388)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")"))))) (; ";")) (labeled_statement "LAB_00255c90:\n          puVar8 = puVar9;" (statement_identifier "LAB_00255c90") (: ":") (expression_statement "puVar8 = puVar9;" (assignment_expression "puVar8 = puVar9" (identifier "puVar8") (= "=") (identifier "puVar9")) (; ";"))) (expression_statement "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);" (call_expression "(**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9)" (parenthesized_expression "(**(code **)(puVar54 + 0x1537b8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1537b8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1537b8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537b8)" (( "(") (binary_expression "puVar54 + 0x1537b8" (identifier "puVar54") (+ "+") (number_literal "0x1537b8")) () ")"))))) () ")")) (argument_list "(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9)" (( "(") (identifier "auStack_5144") (, ",") (number_literal "0x1000") (, ",") (binary_expression "iVar24 + -0x7c80" (identifier "iVar24") (+ "+") (number_literal "-0x7c80")) (, ",") (identifier "puVar9") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,auStack_5144)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_5144") () ")"))) (; ";")) (expression_statement "pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);" (assignment_expression "pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38)" (identifier "pbVar25") (= "=") (cast_expression "(byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38)" (parenthesized_expression "(**(code **)(puVar54 + 0x153e38))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153e38)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153e38)" (* "*") (cast_expression "(code **)(puVar54 + 0x153e38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153e38)" (( "(") (binary_expression "puVar54 + 0x153e38" (identifier "puVar54") (+ "+") (number_literal "0x153e38")) () ")"))))) () ")")) (argument_list "(puVar50,puVar9,puVar38)" (( "(") (identifier "puVar50") (, ",") (identifier "puVar9") (, ",") (identifier "puVar38") () ")"))))) (; ";")) (if_statement "if (pbVar25 != (byte *)0x0) {\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }" (if "if") (parenthesized_expression "(pbVar25 != (byte *)0x0)" (( "(") (binary_expression "pbVar25 != (byte *)0x0" (identifier "pbVar25") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);\n            if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }\n            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n            if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }\n            goto LAB_00255f78;\n          }" ({ "{") (expression_statement "iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);" (assignment_expression "iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25)" (identifier "iVar32") (= "=") (call_expression "(**(code **)(puVar54 + 0x153d74))(pbVar25)" (parenthesized_expression "(**(code **)(puVar54 + 0x153d74))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153d74)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153d74)" (* "*") (cast_expression "(code **)(puVar54 + 0x153d74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153d74)" (( "(") (binary_expression "puVar54 + 0x153d74" (identifier "puVar54") (+ "+") (number_literal "0x153d74")) () ")"))))) () ")")) (argument_list "(pbVar25)" (( "(") (identifier "pbVar25") () ")")))) (; ";")) (if_statement "if (iVar32 != 0) {\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }" (if "if") (parenthesized_expression "(iVar32 != 0)" (( "(") (binary_expression "iVar32 != 0" (identifier "iVar32") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();\n              iVar34 = 0;\n              pbVar53 = pbVar25;\n              do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);\n              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);\n              goto LAB_00255d60;\n            }" ({ "{") (expression_statement "piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();" (assignment_expression "piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))()" (identifier "piVar26") (= "=") (cast_expression "(int *)(**(code **)(puVar54 + 0x153e70))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar54 + 0x153e70))()" (parenthesized_expression "(**(code **)(puVar54 + 0x153e70))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153e70)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153e70)" (* "*") (cast_expression "(code **)(puVar54 + 0x153e70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153e70)" (( "(") (binary_expression "puVar54 + 0x153e70" (identifier "puVar54") (+ "+") (number_literal "0x153e70")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar34 = 0;" (assignment_expression "iVar34 = 0" (identifier "iVar34") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar53 = pbVar25;" (assignment_expression "pbVar53 = pbVar25" (identifier "pbVar53") (= "=") (identifier "pbVar25")) (; ";")) (do_statement "do {\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              } while (iVar39 != iVar32);" (do "do") (compound_statement "{\n                iVar39 = iVar34 + 1;\n                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }\n                pbVar53 = pbVar53 + 1;\n                iVar34 = iVar39;\n              }" ({ "{") (expression_statement "iVar39 = iVar34 + 1;" (assignment_expression "iVar39 = iVar34 + 1" (identifier "iVar39") (= "=") (binary_expression "iVar34 + 1" (identifier "iVar34") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }" (if "if") (parenthesized_expression "((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0)" (( "(") (binary_expression "(*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20)" (( "(") (binary_expression "*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar26 + (uint)*pbVar53 * 2)" (* "*") (cast_expression "(ushort *)(*piVar26 + (uint)*pbVar53 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar26 + (uint)*pbVar53 * 2)" (( "(") (binary_expression "*piVar26 + (uint)*pbVar53 * 2" (pointer_expression "*piVar26" (* "*") (identifier "piVar26")) (+ "+") (binary_expression "(uint)*pbVar53 * 2" (binary_expression "(uint)*pbVar53" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar53")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }\n                  break;\n                }" ({ "{") (if_statement "if (iVar34 != iVar32) {\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }" (if "if") (parenthesized_expression "(iVar34 != iVar32)" (( "(") (binary_expression "iVar34 != iVar32" (identifier "iVar34") (!= "!=") (identifier "iVar32")) () ")")) (compound_statement "{\n                    pbVar53 = pbVar25 + iVar32;\n                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);\n                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);\n                    if (iVar34 != 0) goto LAB_00255f3c;\n                    pcVar55 = *(code **)(puVar54 + 0x1543d0);\n                    goto LAB_00255fc0;\n                  }" ({ "{") (expression_statement "pbVar53 = pbVar25 + iVar32;" (assignment_expression "pbVar53 = pbVar25 + iVar32" (identifier "pbVar53") (= "=") (binary_expression "pbVar25 + iVar32" (identifier "pbVar25") (+ "+") (identifier "iVar32"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7b)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153a18)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153a18)" (* "*") (cast_expression "(code **)(puVar54 + 0x153a18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153a18)" (( "(") (binary_expression "puVar54 + 0x153a18" (identifier "puVar54") (+ "+") (number_literal "0x153a18")) () ")"))))) () ")")) (argument_list "(puVar50,0x7b)" (( "(") (identifier "puVar50") (, ",") (number_literal "0x7b") () ")"))) (; ";")) (expression_statement "iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);" (assignment_expression "iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d)" (identifier "iVar34") (= "=") (call_expression "(**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d)" (parenthesized_expression "(**(code **)(puVar54 + 0x1541c4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1541c4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1541c4)" (* "*") (cast_expression "(code **)(puVar54 + 0x1541c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1541c4)" (( "(") (binary_expression "puVar54 + 0x1541c4" (identifier "puVar54") (+ "+") (number_literal "0x1541c4")) () ")"))))) () ")")) (argument_list "(pbVar25,0x7d)" (( "(") (identifier "pbVar25") (, ",") (number_literal "0x7d") () ")")))) (; ";")) (if_statement "if (iVar34 != 0) goto LAB_00255f3c;" (if "if") (parenthesized_expression "(iVar34 != 0)" (( "(") (binary_expression "iVar34 != 0" (identifier "iVar34") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00255f3c;" (goto "goto") (statement_identifier "LAB_00255f3c") (; ";"))) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1543d0);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1543d0)" (identifier "pcVar55") (= "=") (pointer_expression "*(code **)(puVar54 + 0x1543d0)" (* "*") (cast_expression "(code **)(puVar54 + 0x1543d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1543d0)" (( "(") (binary_expression "puVar54 + 0x1543d0" (identifier "puVar54") (+ "+") (number_literal "0x1543d0")) () ")"))))) (; ";")) (goto_statement "goto LAB_00255fc0;" (goto "goto") (statement_identifier "LAB_00255fc0") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "pbVar53 = pbVar53 + 1;" (assignment_expression "pbVar53 = pbVar53 + 1" (identifier "pbVar53") (= "=") (binary_expression "pbVar53 + 1" (identifier "pbVar53") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar34 = iVar39;" (assignment_expression "iVar34 = iVar39" (identifier "iVar34") (= "=") (identifier "iVar39")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar39 != iVar32)" (( "(") (binary_expression "iVar39 != iVar32" (identifier "iVar39") (!= "!=") (identifier "iVar32")) () ")")) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);" (call_expression "(**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25)" (parenthesized_expression "(**(code **)(puVar54 + 0x1543d0))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1543d0)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1543d0)" (* "*") (cast_expression "(code **)(puVar54 + 0x1543d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1543d0)" (( "(") (binary_expression "puVar54 + 0x1543d0" (identifier "puVar54") (+ "+") (number_literal "0x1543d0")) () ")"))))) () ")")) (argument_list "(puVar50,iVar32,pbVar25)" (( "(") (identifier "puVar50") (, ",") (identifier "iVar32") (, ",") (identifier "pbVar25") () ")"))) (; ";")) (goto_statement "goto LAB_00255d60;" (goto "goto") (statement_identifier "LAB_00255d60") (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7b)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153a18)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153a18)" (* "*") (cast_expression "(code **)(puVar54 + 0x153a18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153a18)" (( "(") (binary_expression "puVar54 + 0x153a18" (identifier "puVar54") (+ "+") (number_literal "0x153a18")) () ")"))))) () ")")) (argument_list "(puVar50,0x7b)" (( "(") (identifier "puVar50") (, ",") (number_literal "0x7b") () ")"))) (; ";")) (expression_statement "iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);" (assignment_expression "iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d)" (identifier "iVar34") (= "=") (call_expression "(**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d)" (parenthesized_expression "(**(code **)(puVar54 + 0x1541c4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1541c4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1541c4)" (* "*") (cast_expression "(code **)(puVar54 + 0x1541c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1541c4)" (( "(") (binary_expression "puVar54 + 0x1541c4" (identifier "puVar54") (+ "+") (number_literal "0x1541c4")) () ")"))))) () ")")) (argument_list "(pbVar25,0x7d)" (( "(") (identifier "pbVar25") (, ",") (number_literal "0x7d") () ")")))) (; ";")) (if_statement "if (iVar34 == 0) {\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }" (if "if") (parenthesized_expression "(iVar34 == 0)" (( "(") (binary_expression "iVar34 == 0" (identifier "iVar34") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pcVar55 = *(code **)(puVar54 + 0x1543d0);\nLAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);\n              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);\n              goto LAB_00255d60;\n            }" ({ "{") (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1543d0);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1543d0)" (identifier "pcVar55") (= "=") (pointer_expression "*(code **)(puVar54 + 0x1543d0)" (* "*") (cast_expression "(code **)(puVar54 + 0x1543d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1543d0)" (( "(") (binary_expression "puVar54 + 0x1543d0" (identifier "puVar54") (+ "+") (number_literal "0x1543d0")) () ")"))))) (; ";")) (labeled_statement "LAB_00255fc0:\n              (*pcVar55)(puVar50,iVar32,pbVar25);" (statement_identifier "LAB_00255fc0") (: ":") (expression_statement "(*pcVar55)(puVar50,iVar32,pbVar25);" (call_expression "(*pcVar55)(puVar50,iVar32,pbVar25)" (parenthesized_expression "(*pcVar55)" (( "(") (pointer_expression "*pcVar55" (* "*") (identifier "pcVar55")) () ")")) (argument_list "(puVar50,iVar32,pbVar25)" (( "(") (identifier "puVar50") (, ",") (identifier "iVar32") (, ",") (identifier "pbVar25") () ")"))) (; ";"))) (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7d)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153a18)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153a18)" (* "*") (cast_expression "(code **)(puVar54 + 0x153a18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153a18)" (( "(") (binary_expression "puVar54 + 0x153a18" (identifier "puVar54") (+ "+") (number_literal "0x153a18")) () ")"))))) () ")")) (argument_list "(puVar50,0x7d)" (( "(") (identifier "puVar50") (, ",") (number_literal "0x7d") () ")"))) (; ";")) (goto_statement "goto LAB_00255d60;" (goto "goto") (statement_identifier "LAB_00255d60") (; ";")) (} "}"))) (goto_statement "goto LAB_00255f78;" (goto "goto") (statement_identifier "LAB_00255f78") (; ";")) (} "}"))) (goto_statement "goto LAB_00255d60;" (goto "goto") (statement_identifier "LAB_00255d60") (; ";")) (} "}"))) (labeled_statement "LAB_00255d8c:\n        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);" (statement_identifier "LAB_00255d8c") (: ":") (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50,iVar22 + -0x770c)" (( "(") (identifier "puVar50") (, ",") (binary_expression "iVar22 + -0x770c" (identifier "iVar22") (+ "+") (number_literal "-0x770c")) () ")"))) (; ";"))) (if_statement "if (*(int *)(puVar50 + 0x102) != 0) {\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x102) != 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0x102) != 0" (pointer_expression "*(int *)(puVar50 + 0x102)" (* "*") (cast_expression "(int *)(puVar50 + 0x102)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x102)" (( "(") (binary_expression "puVar50 + 0x102" (identifier "puVar50") (+ "+") (number_literal "0x102")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }\n          (**(code **)(puVar54 + 0x153a18))(puVar50,0);\n        }" ({ "{") (if_statement "if (*(int *)(puVar50 + 0x104) != 0) {\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0x104) != 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0x104) != 0" (pointer_expression "*(int *)(puVar50 + 0x104)" (* "*") (cast_expression "(int *)(puVar50 + 0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x104)" (( "(") (binary_expression "puVar50 + 0x104" (identifier "puVar50") (+ "+") (number_literal "0x104")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            (**(code **)(puVar54 + 0x153fe4))(puVar50);\n          }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x153fe4))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x153fe4))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153fe4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153fe4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153fe4)" (* "*") (cast_expression "(code **)(puVar54 + 0x153fe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153fe4)" (( "(") (binary_expression "puVar54 + 0x153fe4" (identifier "puVar54") (+ "+") (number_literal "0x153fe4")) () ")"))))) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153a18)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153a18)" (* "*") (cast_expression "(code **)(puVar54 + 0x153a18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153a18)" (( "(") (binary_expression "puVar54 + 0x153a18" (identifier "puVar54") (+ "+") (number_literal "0x153a18")) () ")"))))) () ")")) (argument_list "(puVar50,0)" (( "(") (identifier "puVar50") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar50 + 0xfe) == 0) {\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }\n        else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar50 + 0xfe) == 0)" (( "(") (binary_expression "*(int *)(puVar50 + 0xfe) == 0" (pointer_expression "*(int *)(puVar50 + 0xfe)" (* "*") (cast_expression "(int *)(puVar50 + 0xfe)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0xfe)" (( "(") (binary_expression "puVar50 + 0xfe" (identifier "puVar50") (+ "+") (number_literal "0xfe")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n        }" ({ "{") (if_statement "if (*(int *)puVar50 == 2) {\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }" (if "if") (parenthesized_expression "(*(int *)puVar50 == 2)" (( "(") (binary_expression "*(int *)puVar50 == 2" (pointer_expression "*(int *)puVar50" (* "*") (cast_expression "(int *)puVar50" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar50"))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\nLAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;\n            puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);\n            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;\n            iVar24 = *(int *)(puVar50 + 0x12);\n            if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);\n            (**(code **)(puVar54 + 0x1539fc))(puVar27);\n          }" ({ "{") (labeled_statement "LAB_002561e8:\n            uVar13 = (uint)(iVar46 * 3) >> 3;" (statement_identifier "LAB_002561e8") (: ":") (expression_statement "uVar13 = (uint)(iVar46 * 3) >> 3;" (assignment_expression "uVar13 = (uint)(iVar46 * 3) >> 3" (identifier "uVar13") (= "=") (binary_expression "(uint)(iVar46 * 3) >> 3" (call_expression "(uint)(iVar46 * 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar46 * 3)" (( "(") (binary_expression "iVar46 * 3" (identifier "iVar46") (* "*") (number_literal "3")) () ")"))) (>> ">>") (number_literal "3"))) (; ";"))) (expression_statement "puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);" (assignment_expression "puVar27 = (undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13)" (identifier "puVar27") (= "=") (cast_expression "(undefined1 *)\n                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13)" (parenthesized_expression "(**(code **)(puVar54 + 0x153f48))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153f48)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153f48)" (* "*") (cast_expression "(code **)(puVar54 + 0x153f48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153f48)" (( "(") (binary_expression "puVar54 + 0x153f48" (identifier "puVar54") (+ "+") (number_literal "0x153f48")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar50 + 0x12),uVar13)" (( "(") (pointer_expression "*(undefined4 *)(puVar50 + 0x12)" (* "*") (cast_expression "(undefined4 *)(puVar50 + 0x12)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x12)" (( "(") (binary_expression "puVar50 + 0x12" (identifier "puVar50") (+ "+") (number_literal "0x12")) () ")")))) (, ",") (identifier "uVar13") () ")"))))) (; ";")) (if_statement "if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;" (if "if") (parenthesized_expression "(puVar27 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar27 == (undefined1 *)0x0" (identifier "puVar27") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0025569c;" (goto "goto") (statement_identifier "LAB_0025569c") (; ";"))) (expression_statement "iVar24 = *(int *)(puVar50 + 0x12);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x12)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar50 + 0x12)" (* "*") (cast_expression "(int *)(puVar50 + 0x12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x12)" (( "(") (binary_expression "puVar50 + 0x12" (identifier "puVar50") (+ "+") (number_literal "0x12")) () ")"))))) (; ";")) (if_statement "if (0 < iVar24) {\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }" (if "if") (parenthesized_expression "(0 < iVar24)" (( "(") (binary_expression "0 < iVar24" (number_literal "0") (< "<") (identifier "iVar24")) () ")")) (compound_statement "{\n              iVar32 = 0;\n              iVar43 = *(int *)(puVar54 + 0x153324);\n              iVar34 = 0;\n              dVar65 = *(double *)(iVar51 + 0x1410);\n              iVar42 = *(int *)(puVar54 + 0x15331c);\n              dVar57 = *(double *)(iVar43 + -0x5b00);\n              iVar41 = *(int *)(puVar54 + 0x153324);\n              iVar40 = *(int *)(puVar54 + 0x153324);\n              iVar39 = *(int *)(puVar54 + 0x153324);\n              dVar56 = *(double *)(iVar49 + 0x1400);\n              fVar62 = *(float *)(iVar42 + 0x1a50);\n              dVar63 = *(double *)(iVar41 + -0x5af8);\n              dVar61 = *(double *)(iVar40 + -0x5af0);\n              dVar64 = *(double *)(iVar39 + -0x5ae8);\n              puVar28 = puVar27;\n              do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);\n            }" ({ "{") (expression_statement "iVar32 = 0;" (assignment_expression "iVar32 = 0" (identifier "iVar32") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar43 = *(int *)(puVar54 + 0x153324);" (assignment_expression "iVar43 = *(int *)(puVar54 + 0x153324)" (identifier "iVar43") (= "=") (pointer_expression "*(int *)(puVar54 + 0x153324)" (* "*") (cast_expression "(int *)(puVar54 + 0x153324)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153324)" (( "(") (binary_expression "puVar54 + 0x153324" (identifier "puVar54") (+ "+") (number_literal "0x153324")) () ")"))))) (; ";")) (expression_statement "iVar34 = 0;" (assignment_expression "iVar34 = 0" (identifier "iVar34") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar65 = *(double *)(iVar51 + 0x1410);" (assignment_expression "dVar65 = *(double *)(iVar51 + 0x1410)" (identifier "dVar65") (= "=") (pointer_expression "*(double *)(iVar51 + 0x1410)" (* "*") (cast_expression "(double *)(iVar51 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar51 + 0x1410)" (( "(") (binary_expression "iVar51 + 0x1410" (identifier "iVar51") (+ "+") (number_literal "0x1410")) () ")"))))) (; ";")) (expression_statement "iVar42 = *(int *)(puVar54 + 0x15331c);" (assignment_expression "iVar42 = *(int *)(puVar54 + 0x15331c)" (identifier "iVar42") (= "=") (pointer_expression "*(int *)(puVar54 + 0x15331c)" (* "*") (cast_expression "(int *)(puVar54 + 0x15331c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x15331c)" (( "(") (binary_expression "puVar54 + 0x15331c" (identifier "puVar54") (+ "+") (number_literal "0x15331c")) () ")"))))) (; ";")) (expression_statement "dVar57 = *(double *)(iVar43 + -0x5b00);" (assignment_expression "dVar57 = *(double *)(iVar43 + -0x5b00)" (identifier "dVar57") (= "=") (pointer_expression "*(double *)(iVar43 + -0x5b00)" (* "*") (cast_expression "(double *)(iVar43 + -0x5b00)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar43 + -0x5b00)" (( "(") (binary_expression "iVar43 + -0x5b00" (identifier "iVar43") (+ "+") (number_literal "-0x5b00")) () ")"))))) (; ";")) (expression_statement "iVar41 = *(int *)(puVar54 + 0x153324);" (assignment_expression "iVar41 = *(int *)(puVar54 + 0x153324)" (identifier "iVar41") (= "=") (pointer_expression "*(int *)(puVar54 + 0x153324)" (* "*") (cast_expression "(int *)(puVar54 + 0x153324)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153324)" (( "(") (binary_expression "puVar54 + 0x153324" (identifier "puVar54") (+ "+") (number_literal "0x153324")) () ")"))))) (; ";")) (expression_statement "iVar40 = *(int *)(puVar54 + 0x153324);" (assignment_expression "iVar40 = *(int *)(puVar54 + 0x153324)" (identifier "iVar40") (= "=") (pointer_expression "*(int *)(puVar54 + 0x153324)" (* "*") (cast_expression "(int *)(puVar54 + 0x153324)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153324)" (( "(") (binary_expression "puVar54 + 0x153324" (identifier "puVar54") (+ "+") (number_literal "0x153324")) () ")"))))) (; ";")) (expression_statement "iVar39 = *(int *)(puVar54 + 0x153324);" (assignment_expression "iVar39 = *(int *)(puVar54 + 0x153324)" (identifier "iVar39") (= "=") (pointer_expression "*(int *)(puVar54 + 0x153324)" (* "*") (cast_expression "(int *)(puVar54 + 0x153324)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153324)" (( "(") (binary_expression "puVar54 + 0x153324" (identifier "puVar54") (+ "+") (number_literal "0x153324")) () ")"))))) (; ";")) (expression_statement "dVar56 = *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar56 = *(double *)(iVar49 + 0x1400)" (identifier "dVar56") (= "=") (pointer_expression "*(double *)(iVar49 + 0x1400)" (* "*") (cast_expression "(double *)(iVar49 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x1400)" (( "(") (binary_expression "iVar49 + 0x1400" (identifier "iVar49") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "fVar62 = *(float *)(iVar42 + 0x1a50);" (assignment_expression "fVar62 = *(float *)(iVar42 + 0x1a50)" (identifier "fVar62") (= "=") (pointer_expression "*(float *)(iVar42 + 0x1a50)" (* "*") (cast_expression "(float *)(iVar42 + 0x1a50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar42 + 0x1a50)" (( "(") (binary_expression "iVar42 + 0x1a50" (identifier "iVar42") (+ "+") (number_literal "0x1a50")) () ")"))))) (; ";")) (expression_statement "dVar63 = *(double *)(iVar41 + -0x5af8);" (assignment_expression "dVar63 = *(double *)(iVar41 + -0x5af8)" (identifier "dVar63") (= "=") (pointer_expression "*(double *)(iVar41 + -0x5af8)" (* "*") (cast_expression "(double *)(iVar41 + -0x5af8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar41 + -0x5af8)" (( "(") (binary_expression "iVar41 + -0x5af8" (identifier "iVar41") (+ "+") (number_literal "-0x5af8")) () ")"))))) (; ";")) (expression_statement "dVar61 = *(double *)(iVar40 + -0x5af0);" (assignment_expression "dVar61 = *(double *)(iVar40 + -0x5af0)" (identifier "dVar61") (= "=") (pointer_expression "*(double *)(iVar40 + -0x5af0)" (* "*") (cast_expression "(double *)(iVar40 + -0x5af0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar40 + -0x5af0)" (( "(") (binary_expression "iVar40 + -0x5af0" (identifier "iVar40") (+ "+") (number_literal "-0x5af0")) () ")"))))) (; ";")) (expression_statement "dVar64 = *(double *)(iVar39 + -0x5ae8);" (assignment_expression "dVar64 = *(double *)(iVar39 + -0x5ae8)" (identifier "dVar64") (= "=") (pointer_expression "*(double *)(iVar39 + -0x5ae8)" (* "*") (cast_expression "(double *)(iVar39 + -0x5ae8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar39 + -0x5ae8)" (( "(") (binary_expression "iVar39 + -0x5ae8" (identifier "iVar39") (+ "+") (number_literal "-0x5ae8")) () ")"))))) (; ";")) (expression_statement "puVar28 = puVar27;" (assignment_expression "puVar28 = puVar27" (identifier "puVar28") (= "=") (identifier "puVar27")) (; ";")) (do_statement "do {\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              } while (iVar34 < iVar24);" (do "do") (compound_statement "{\n                if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }\n                iVar24 = *(int *)(puVar50 + 0x12);\n                iVar34 = iVar34 + 1;\n                iVar32 = iVar32 + 0x58;\n                puVar28 = puVar29;\n              }" ({ "{") (if_statement "if (iVar46 == 0x10) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }\n                else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(iVar46 == 0x10)" (( "(") (binary_expression "iVar46 == 0x10" (identifier "iVar46") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  *puVar28 = uVar45;\n                  puVar28[1] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[2] = uVar45;\n                  puVar28[3] = uVar44;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }\n                  puVar28[4] = uVar45;\n                  puVar29 = puVar28 + 6;\n                  puVar28[5] = uVar44;\n                }" ({ "{") (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" (identifier "fVar59") (= "=") (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" (* "*") (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" (( "(") (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x28" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" (* "*") (cast_expression "(int *)(puVar50 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x14)" (( "(") (binary_expression "puVar50 + 0x14" (identifier "puVar50") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (identifier "iVar32")) (+ "+") (number_literal "0x28")) () ")")))))) (; ";")) (if_statement "if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" (if "if") (parenthesized_expression "(fVar59 <= 0.0)" (( "(") (binary_expression "fVar59 <= 0.0" (identifier "fVar59") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }" ({ "{") (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" (identifier "uVar44") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" (identifier "uVar45") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" (else "else") (if_statement "if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" (if "if") (parenthesized_expression "(fVar59 < *(float *)(iVar42 + 0x1a50))" (( "(") (binary_expression "fVar59 < *(float *)(iVar42 + 0x1a50)" (identifier "fVar59") (< "<") (pointer_expression "*(float *)(iVar42 + 0x1a50)" (* "*") (cast_expression "(float *)(iVar42 + 0x1a50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar42 + 0x1a50)" (( "(") (binary_expression "iVar42 + 0x1a50" (identifier "iVar42") (+ "+") (number_literal "0x1a50")) () ")"))))) () ")")) (compound_statement "{\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }" ({ "{") (expression_statement "dVar58 = (double)fVar59 + dVar56;" (assignment_expression "dVar58 = (double)fVar59 + dVar56" (identifier "dVar58") (= "=") (binary_expression "(double)fVar59 + dVar56" (cast_expression "(double)fVar59" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar59")) (+ "+") (identifier "dVar56"))) (; ";")) (if_statement "if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" (if "if") (parenthesized_expression "(dVar58 < dVar65)" (( "(") (binary_expression "dVar58 < dVar65" (identifier "dVar58") (< "<") (identifier "dVar65")) () ")")) (compound_statement "{\n                      uVar60 = (undefined2)(int)dVar58;\n                    }" ({ "{") (expression_statement "uVar60 = (undefined2)(int)dVar58;" (assignment_expression "uVar60 = (undefined2)(int)dVar58" (identifier "uVar60") (= "=") (cast_expression "(undefined2)(int)dVar58" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (cast_expression "(int)dVar58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar58")))) (; ";")) (} "}")) (else_clause "else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" (else "else") (compound_statement "{\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" ({ "{") (expression_statement "uVar60 = (undefined2)(int)(dVar58 - dVar65);" (assignment_expression "uVar60 = (undefined2)(int)(dVar58 - dVar65)" (identifier "uVar60") (= "=") (call_expression "(undefined2)(int)(dVar58 - dVar65)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" (( "(") (identifier "undefined2") () ")")) (argument_list "(int)" (( "(") (identifier "int") () ")"))) (argument_list "(dVar58 - dVar65)" (( "(") (binary_expression "dVar58 - dVar65" (identifier "dVar58") (- "-") (identifier "dVar65")) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar45 = (undefined1)((ushort)uVar60 >> 8);" (assignment_expression "uVar45 = (undefined1)((ushort)uVar60 >> 8)" (identifier "uVar45") (= "=") (call_expression "(undefined1)((ushort)uVar60 >> 8)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((ushort)uVar60 >> 8)" (( "(") (binary_expression "(ushort)uVar60 >> 8" (cast_expression "(ushort)uVar60" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar60")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar44 = (undefined1)uVar60;" (assignment_expression "uVar44 = (undefined1)uVar60" (identifier "uVar44") (= "=") (cast_expression "(undefined1)uVar60" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uVar60"))) (; ";")) (} "}")) (else_clause "else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" (else "else") (compound_statement "{\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" ({ "{") (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" (identifier "uVar44") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" (identifier "uVar45") (= "=") (number_literal "0xff")) (; ";")) (} "}")))))) (expression_statement "*puVar28 = uVar45;" (assignment_expression "*puVar28 = uVar45" (pointer_expression "*puVar28" (* "*") (identifier "puVar28")) (= "=") (identifier "uVar45")) (; ";")) (expression_statement "puVar28[1] = uVar44;" (assignment_expression "puVar28[1] = uVar44" (subscript_expression "puVar28[1]" (identifier "puVar28") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar44")) (; ";")) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" (identifier "fVar59") (= "=") (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" (* "*") (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" (( "(") (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x30" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" (* "*") (cast_expression "(int *)(puVar50 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x14)" (( "(") (binary_expression "puVar50 + 0x14" (identifier "puVar50") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (identifier "iVar32")) (+ "+") (number_literal "0x30")) () ")")))))) (; ";")) (if_statement "if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" (if "if") (parenthesized_expression "(fVar59 <= 0.0)" (( "(") (binary_expression "fVar59 <= 0.0" (identifier "fVar59") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }" ({ "{") (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" (identifier "uVar44") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" (identifier "uVar45") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" (else "else") (if_statement "if (fVar59 < *(float *)(iVar42 + 0x1a50)) {\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" (if "if") (parenthesized_expression "(fVar59 < *(float *)(iVar42 + 0x1a50))" (( "(") (binary_expression "fVar59 < *(float *)(iVar42 + 0x1a50)" (identifier "fVar59") (< "<") (pointer_expression "*(float *)(iVar42 + 0x1a50)" (* "*") (cast_expression "(float *)(iVar42 + 0x1a50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar42 + 0x1a50)" (( "(") (binary_expression "iVar42 + 0x1a50" (identifier "iVar42") (+ "+") (number_literal "0x1a50")) () ")"))))) () ")")) (compound_statement "{\n                    dVar58 = (double)fVar59 + dVar56;\n                    if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }" ({ "{") (expression_statement "dVar58 = (double)fVar59 + dVar56;" (assignment_expression "dVar58 = (double)fVar59 + dVar56" (identifier "dVar58") (= "=") (binary_expression "(double)fVar59 + dVar56" (cast_expression "(double)fVar59" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar59")) (+ "+") (identifier "dVar56"))) (; ";")) (if_statement "if (dVar58 < dVar65) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" (if "if") (parenthesized_expression "(dVar58 < dVar65)" (( "(") (binary_expression "dVar58 < dVar65" (identifier "dVar58") (< "<") (identifier "dVar65")) () ")")) (compound_statement "{\n                      uVar60 = (undefined2)(int)dVar58;\n                    }" ({ "{") (expression_statement "uVar60 = (undefined2)(int)dVar58;" (assignment_expression "uVar60 = (undefined2)(int)dVar58" (identifier "uVar60") (= "=") (cast_expression "(undefined2)(int)dVar58" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (cast_expression "(int)dVar58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar58")))) (; ";")) (} "}")) (else_clause "else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" (else "else") (compound_statement "{\n                      uVar60 = (undefined2)(int)(dVar58 - dVar65);\n                    }" ({ "{") (expression_statement "uVar60 = (undefined2)(int)(dVar58 - dVar65);" (assignment_expression "uVar60 = (undefined2)(int)(dVar58 - dVar65)" (identifier "uVar60") (= "=") (call_expression "(undefined2)(int)(dVar58 - dVar65)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" (( "(") (identifier "undefined2") () ")")) (argument_list "(int)" (( "(") (identifier "int") () ")"))) (argument_list "(dVar58 - dVar65)" (( "(") (binary_expression "dVar58 - dVar65" (identifier "dVar58") (- "-") (identifier "dVar65")) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar45 = (undefined1)((ushort)uVar60 >> 8);" (assignment_expression "uVar45 = (undefined1)((ushort)uVar60 >> 8)" (identifier "uVar45") (= "=") (call_expression "(undefined1)((ushort)uVar60 >> 8)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((ushort)uVar60 >> 8)" (( "(") (binary_expression "(ushort)uVar60 >> 8" (cast_expression "(ushort)uVar60" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar60")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar44 = (undefined1)uVar60;" (assignment_expression "uVar44 = (undefined1)uVar60" (identifier "uVar44") (= "=") (cast_expression "(undefined1)uVar60" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uVar60"))) (; ";")) (} "}")) (else_clause "else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" (else "else") (compound_statement "{\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" ({ "{") (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" (identifier "uVar44") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" (identifier "uVar45") (= "=") (number_literal "0xff")) (; ";")) (} "}")))))) (expression_statement "puVar28[2] = uVar45;" (assignment_expression "puVar28[2] = uVar45" (subscript_expression "puVar28[2]" (identifier "puVar28") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar45")) (; ";")) (expression_statement "puVar28[3] = uVar44;" (assignment_expression "puVar28[3] = uVar44" (subscript_expression "puVar28[3]" (identifier "puVar28") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar44")) (; ";")) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" (identifier "fVar59") (= "=") (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" (* "*") (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" (( "(") (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x38" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" (* "*") (cast_expression "(int *)(puVar50 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x14)" (( "(") (binary_expression "puVar50 + 0x14" (identifier "puVar50") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (identifier "iVar32")) (+ "+") (number_literal "0x38")) () ")")))))) (; ";")) (if_statement "if (fVar59 <= 0.0) {\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }\n                  else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" (if "if") (parenthesized_expression "(fVar59 <= 0.0)" (( "(") (binary_expression "fVar59 <= 0.0" (identifier "fVar59") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                    uVar44 = 0;\n                    uVar45 = 0;\n                  }" ({ "{") (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" (identifier "uVar44") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" (identifier "uVar45") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" (else "else") (if_statement "if (fVar59 < fVar62) {\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }\n                  else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" (if "if") (parenthesized_expression "(fVar59 < fVar62)" (( "(") (binary_expression "fVar59 < fVar62" (identifier "fVar59") (< "<") (identifier "fVar62")) () ")")) (compound_statement "{\n                    dVar58 = (double)fVar59 + dVar67;\n                    if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }\n                    uVar45 = (undefined1)((ushort)uVar60 >> 8);\n                    uVar44 = (undefined1)uVar60;\n                  }" ({ "{") (expression_statement "dVar58 = (double)fVar59 + dVar67;" (assignment_expression "dVar58 = (double)fVar59 + dVar67" (identifier "dVar58") (= "=") (binary_expression "(double)fVar59 + dVar67" (cast_expression "(double)fVar59" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar59")) (+ "+") (identifier "dVar67"))) (; ";")) (if_statement "if (dVar58 < dVar66) {\n                      uVar60 = (undefined2)(int)dVar58;\n                    }\n                    else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }" (if "if") (parenthesized_expression "(dVar58 < dVar66)" (( "(") (binary_expression "dVar58 < dVar66" (identifier "dVar58") (< "<") (identifier "dVar66")) () ")")) (compound_statement "{\n                      uVar60 = (undefined2)(int)dVar58;\n                    }" ({ "{") (expression_statement "uVar60 = (undefined2)(int)dVar58;" (assignment_expression "uVar60 = (undefined2)(int)dVar58" (identifier "uVar60") (= "=") (cast_expression "(undefined2)(int)dVar58" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (cast_expression "(int)dVar58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar58")))) (; ";")) (} "}")) (else_clause "else {\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }" (else "else") (compound_statement "{\n                      uVar60 = (undefined2)(int)(dVar58 - dVar66);\n                    }" ({ "{") (expression_statement "uVar60 = (undefined2)(int)(dVar58 - dVar66);" (assignment_expression "uVar60 = (undefined2)(int)(dVar58 - dVar66)" (identifier "uVar60") (= "=") (call_expression "(undefined2)(int)(dVar58 - dVar66)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" (( "(") (identifier "undefined2") () ")")) (argument_list "(int)" (( "(") (identifier "int") () ")"))) (argument_list "(dVar58 - dVar66)" (( "(") (binary_expression "dVar58 - dVar66" (identifier "dVar58") (- "-") (identifier "dVar66")) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar45 = (undefined1)((ushort)uVar60 >> 8);" (assignment_expression "uVar45 = (undefined1)((ushort)uVar60 >> 8)" (identifier "uVar45") (= "=") (call_expression "(undefined1)((ushort)uVar60 >> 8)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((ushort)uVar60 >> 8)" (( "(") (binary_expression "(ushort)uVar60 >> 8" (cast_expression "(ushort)uVar60" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar60")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar44 = (undefined1)uVar60;" (assignment_expression "uVar44 = (undefined1)uVar60" (identifier "uVar44") (= "=") (cast_expression "(undefined1)uVar60" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uVar60"))) (; ";")) (} "}")) (else_clause "else {\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" (else "else") (compound_statement "{\n                    uVar44 = 0xff;\n                    uVar45 = 0xff;\n                  }" ({ "{") (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" (identifier "uVar44") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" (identifier "uVar45") (= "=") (number_literal "0xff")) (; ";")) (} "}")))))) (expression_statement "puVar28[4] = uVar45;" (assignment_expression "puVar28[4] = uVar45" (subscript_expression "puVar28[4]" (identifier "puVar28") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar45")) (; ";")) (expression_statement "puVar29 = puVar28 + 6;" (assignment_expression "puVar29 = puVar28 + 6" (identifier "puVar29") (= "=") (binary_expression "puVar28 + 6" (identifier "puVar28") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "puVar28[5] = uVar44;" (assignment_expression "puVar28[5] = uVar44" (subscript_expression "puVar28[5]" (identifier "puVar28") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar44")) (; ";")) (} "}")) (else_clause "else if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }" (else "else") (if_statement "if (iVar46 == 0x20) {\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }\n                else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(iVar46 == 0x20)" (( "(") (binary_expression "iVar46 == 0x20" (identifier "iVar46") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  *puVar28 = uVar52;\n                  puVar28[1] = uVar45;\n                  puVar28[2] = uVar44;\n                  puVar28[3] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[4] = uVar52;\n                  puVar28[5] = uVar45;\n                  puVar28[6] = uVar44;\n                  puVar28[7] = uVar37;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }\n                  puVar28[8] = uVar37;\n                  puVar29 = puVar28 + 0xc;\n                  puVar28[9] = uVar44;\n                  puVar28[10] = uVar45;\n                  puVar28[0xb] = uVar52;\n                }" ({ "{") (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" (identifier "fVar59") (= "=") (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" (* "*") (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" (( "(") (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x28" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" (* "*") (cast_expression "(int *)(puVar50 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x14)" (( "(") (binary_expression "puVar50 + 0x14" (identifier "puVar50") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (identifier "iVar32")) (+ "+") (number_literal "0x28")) () ")")))))) (; ";")) (if_statement "if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" (if "if") (parenthesized_expression "(fVar59 <= 0.0)" (( "(") (binary_expression "fVar59 <= 0.0" (identifier "fVar59") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }" ({ "{") (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" (identifier "uVar37") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" (identifier "uVar44") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" (identifier "uVar45") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" (identifier "uVar52") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" (else "else") (compound_statement "{\n                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" ({ "{") (expression_statement "dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);" (assignment_expression "dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00)" (identifier "dVar58") (= "=") (binary_expression "(double)fVar59 * *(double *)(iVar43 + -0x5b00)" (cast_expression "(double)fVar59" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar59")) (* "*") (pointer_expression "*(double *)(iVar43 + -0x5b00)" (* "*") (cast_expression "(double *)(iVar43 + -0x5b00)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar43 + -0x5b00)" (( "(") (binary_expression "iVar43 + -0x5b00" (identifier "iVar43") (+ "+") (number_literal "-0x5b00")) () ")")))))) (; ";")) (expression_statement "uVar37 = 0xff;" (assignment_expression "uVar37 = 0xff" (identifier "uVar37") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" (if "if") (parenthesized_expression "(dVar58 < *(double *)(iVar41 + -0x5af8))" (( "(") (binary_expression "dVar58 < *(double *)(iVar41 + -0x5af8)" (identifier "dVar58") (< "<") (pointer_expression "*(double *)(iVar41 + -0x5af8)" (* "*") (cast_expression "(double *)(iVar41 + -0x5af8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar41 + -0x5af8)" (( "(") (binary_expression "iVar41 + -0x5af8" (identifier "iVar41") (+ "+") (number_literal "-0x5af8")) () ")"))))) () ")")) (compound_statement "{\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }" ({ "{") (expression_statement "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400)" (identifier "dVar58") (= "=") (binary_expression "dVar58 + *(double *)(iVar49 + 0x1400)" (identifier "dVar58") (+ "+") (pointer_expression "*(double *)(iVar49 + 0x1400)" (* "*") (cast_expression "(double *)(iVar49 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x1400)" (( "(") (binary_expression "iVar49 + 0x1400" (identifier "iVar49") (+ "+") (number_literal "0x1400")) () ")")))))) (; ";")) (if_statement "if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" (if "if") (parenthesized_expression "(dVar58 < *(double *)(iVar51 + 0x1410))" (( "(") (binary_expression "dVar58 < *(double *)(iVar51 + 0x1410)" (identifier "dVar58") (< "<") (pointer_expression "*(double *)(iVar51 + 0x1410)" (* "*") (cast_expression "(double *)(iVar51 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar51 + 0x1410)" (( "(") (binary_expression "iVar51 + 0x1410" (identifier "iVar51") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")) (compound_statement "{\n                        uVar36 = (uint)dVar58;\n                      }" ({ "{") (expression_statement "uVar36 = (uint)dVar58;" (assignment_expression "uVar36 = (uint)dVar58" (identifier "uVar36") (= "=") (cast_expression "(uint)dVar58" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar58"))) (; ";")) (} "}")) (else_clause "else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" (else "else") (compound_statement "{\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" ({ "{") (expression_statement "uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;" (assignment_expression "uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000" (identifier "uVar36") (= "=") (binary_expression "(int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar58 - *(double *)(iVar51 + 0x1410))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar58 - *(double *)(iVar51 + 0x1410))" (( "(") (binary_expression "dVar58 - *(double *)(iVar51 + 0x1410)" (identifier "dVar58") (- "-") (pointer_expression "*(double *)(iVar51 + 0x1410)" (* "*") (cast_expression "(double *)(iVar51 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar51 + 0x1410)" (( "(") (binary_expression "iVar51 + 0x1410" (identifier "iVar51") (+ "+") (number_literal "0x1410")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "uVar52 = (undefined1)(uVar36 >> 0x18);" (assignment_expression "uVar52 = (undefined1)(uVar36 >> 0x18)" (identifier "uVar52") (= "=") (call_expression "(undefined1)(uVar36 >> 0x18)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(uVar36 >> 0x18)" (( "(") (binary_expression "uVar36 >> 0x18" (identifier "uVar36") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "uVar45 = (undefined1)(uVar36 >> 0x10);" (assignment_expression "uVar45 = (undefined1)(uVar36 >> 0x10)" (identifier "uVar45") (= "=") (call_expression "(undefined1)(uVar36 >> 0x10)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(uVar36 >> 0x10)" (( "(") (binary_expression "uVar36 >> 0x10" (identifier "uVar36") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "uVar44 = (undefined1)(uVar36 >> 8);" (assignment_expression "uVar44 = (undefined1)(uVar36 >> 8)" (identifier "uVar44") (= "=") (call_expression "(undefined1)(uVar36 >> 8)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(uVar36 >> 8)" (( "(") (binary_expression "uVar36 >> 8" (identifier "uVar36") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar37 = (undefined1)uVar36;" (assignment_expression "uVar37 = (undefined1)uVar36" (identifier "uVar37") (= "=") (cast_expression "(undefined1)uVar36" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uVar36"))) (; ";")) (} "}")) (else_clause "else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" (else "else") (compound_statement "{\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" ({ "{") (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" (identifier "uVar44") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" (identifier "uVar45") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" (identifier "uVar52") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")))) (expression_statement "*puVar28 = uVar52;" (assignment_expression "*puVar28 = uVar52" (pointer_expression "*puVar28" (* "*") (identifier "puVar28")) (= "=") (identifier "uVar52")) (; ";")) (expression_statement "puVar28[1] = uVar45;" (assignment_expression "puVar28[1] = uVar45" (subscript_expression "puVar28[1]" (identifier "puVar28") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar45")) (; ";")) (expression_statement "puVar28[2] = uVar44;" (assignment_expression "puVar28[2] = uVar44" (subscript_expression "puVar28[2]" (identifier "puVar28") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar44")) (; ";")) (expression_statement "puVar28[3] = uVar37;" (assignment_expression "puVar28[3] = uVar37" (subscript_expression "puVar28[3]" (identifier "puVar28") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar37")) (; ";")) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" (identifier "fVar59") (= "=") (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" (* "*") (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" (( "(") (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x30" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" (* "*") (cast_expression "(int *)(puVar50 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x14)" (( "(") (binary_expression "puVar50 + 0x14" (identifier "puVar50") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (identifier "iVar32")) (+ "+") (number_literal "0x30")) () ")")))))) (; ";")) (if_statement "if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" (if "if") (parenthesized_expression "(fVar59 <= 0.0)" (( "(") (binary_expression "fVar59 <= 0.0" (identifier "fVar59") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }" ({ "{") (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" (identifier "uVar37") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" (identifier "uVar44") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" (identifier "uVar45") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" (identifier "uVar52") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" (else "else") (compound_statement "{\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar37 = 0xff;\n                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" ({ "{") (expression_statement "dVar58 = (double)fVar59 * dVar57;" (assignment_expression "dVar58 = (double)fVar59 * dVar57" (identifier "dVar58") (= "=") (binary_expression "(double)fVar59 * dVar57" (cast_expression "(double)fVar59" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar59")) (* "*") (identifier "dVar57"))) (; ";")) (expression_statement "uVar37 = 0xff;" (assignment_expression "uVar37 = 0xff" (identifier "uVar37") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar58 < *(double *)(iVar41 + -0x5af8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }\n                    else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" (if "if") (parenthesized_expression "(dVar58 < *(double *)(iVar41 + -0x5af8))" (( "(") (binary_expression "dVar58 < *(double *)(iVar41 + -0x5af8)" (identifier "dVar58") (< "<") (pointer_expression "*(double *)(iVar41 + -0x5af8)" (* "*") (cast_expression "(double *)(iVar41 + -0x5af8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar41 + -0x5af8)" (( "(") (binary_expression "iVar41 + -0x5af8" (identifier "iVar41") (+ "+") (number_literal "-0x5af8")) () ")"))))) () ")")) (compound_statement "{\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)(uVar36 >> 0x18);\n                      uVar45 = (undefined1)(uVar36 >> 0x10);\n                      uVar44 = (undefined1)(uVar36 >> 8);\n                      uVar37 = (undefined1)uVar36;\n                    }" ({ "{") (expression_statement "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400)" (identifier "dVar58") (= "=") (binary_expression "dVar58 + *(double *)(iVar49 + 0x1400)" (identifier "dVar58") (+ "+") (pointer_expression "*(double *)(iVar49 + 0x1400)" (* "*") (cast_expression "(double *)(iVar49 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x1400)" (( "(") (binary_expression "iVar49 + 0x1400" (identifier "iVar49") (+ "+") (number_literal "0x1400")) () ")")))))) (; ";")) (if_statement "if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" (if "if") (parenthesized_expression "(dVar58 < *(double *)(iVar51 + 0x1410))" (( "(") (binary_expression "dVar58 < *(double *)(iVar51 + 0x1410)" (identifier "dVar58") (< "<") (pointer_expression "*(double *)(iVar51 + 0x1410)" (* "*") (cast_expression "(double *)(iVar51 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar51 + 0x1410)" (( "(") (binary_expression "iVar51 + 0x1410" (identifier "iVar51") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")) (compound_statement "{\n                        uVar36 = (uint)dVar58;\n                      }" ({ "{") (expression_statement "uVar36 = (uint)dVar58;" (assignment_expression "uVar36 = (uint)dVar58" (identifier "uVar36") (= "=") (cast_expression "(uint)dVar58" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar58"))) (; ";")) (} "}")) (else_clause "else {\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" (else "else") (compound_statement "{\n                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;\n                      }" ({ "{") (expression_statement "uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;" (assignment_expression "uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000" (identifier "uVar36") (= "=") (binary_expression "(int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar58 - *(double *)(iVar51 + 0x1410))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar58 - *(double *)(iVar51 + 0x1410))" (( "(") (binary_expression "dVar58 - *(double *)(iVar51 + 0x1410)" (identifier "dVar58") (- "-") (pointer_expression "*(double *)(iVar51 + 0x1410)" (* "*") (cast_expression "(double *)(iVar51 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar51 + 0x1410)" (( "(") (binary_expression "iVar51 + 0x1410" (identifier "iVar51") (+ "+") (number_literal "0x1410")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "uVar52 = (undefined1)(uVar36 >> 0x18);" (assignment_expression "uVar52 = (undefined1)(uVar36 >> 0x18)" (identifier "uVar52") (= "=") (call_expression "(undefined1)(uVar36 >> 0x18)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(uVar36 >> 0x18)" (( "(") (binary_expression "uVar36 >> 0x18" (identifier "uVar36") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "uVar45 = (undefined1)(uVar36 >> 0x10);" (assignment_expression "uVar45 = (undefined1)(uVar36 >> 0x10)" (identifier "uVar45") (= "=") (call_expression "(undefined1)(uVar36 >> 0x10)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(uVar36 >> 0x10)" (( "(") (binary_expression "uVar36 >> 0x10" (identifier "uVar36") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "uVar44 = (undefined1)(uVar36 >> 8);" (assignment_expression "uVar44 = (undefined1)(uVar36 >> 8)" (identifier "uVar44") (= "=") (call_expression "(undefined1)(uVar36 >> 8)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(uVar36 >> 8)" (( "(") (binary_expression "uVar36 >> 8" (identifier "uVar36") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar37 = (undefined1)uVar36;" (assignment_expression "uVar37 = (undefined1)uVar36" (identifier "uVar37") (= "=") (cast_expression "(undefined1)uVar36" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uVar36"))) (; ";")) (} "}")) (else_clause "else {\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" (else "else") (compound_statement "{\n                      uVar44 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" ({ "{") (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" (identifier "uVar44") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" (identifier "uVar45") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" (identifier "uVar52") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")))) (expression_statement "puVar28[4] = uVar52;" (assignment_expression "puVar28[4] = uVar52" (subscript_expression "puVar28[4]" (identifier "puVar28") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar52")) (; ";")) (expression_statement "puVar28[5] = uVar45;" (assignment_expression "puVar28[5] = uVar45" (subscript_expression "puVar28[5]" (identifier "puVar28") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar45")) (; ";")) (expression_statement "puVar28[6] = uVar44;" (assignment_expression "puVar28[6] = uVar44" (subscript_expression "puVar28[6]" (identifier "puVar28") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar44")) (; ";")) (expression_statement "puVar28[7] = uVar37;" (assignment_expression "puVar28[7] = uVar37" (subscript_expression "puVar28[7]" (identifier "puVar28") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar37")) (; ";")) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" (identifier "fVar59") (= "=") (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" (* "*") (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" (( "(") (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x38" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" (* "*") (cast_expression "(int *)(puVar50 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x14)" (( "(") (binary_expression "puVar50 + 0x14" (identifier "puVar50") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (identifier "iVar32")) (+ "+") (number_literal "0x38")) () ")")))))) (; ";")) (if_statement "if (fVar59 <= 0.0) {\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" (if "if") (parenthesized_expression "(fVar59 <= 0.0)" (( "(") (binary_expression "fVar59 <= 0.0" (identifier "fVar59") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                    uVar37 = 0;\n                    uVar44 = 0;\n                    uVar45 = 0;\n                    uVar52 = 0;\n                  }" ({ "{") (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" (identifier "uVar37") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" (identifier "uVar44") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" (identifier "uVar45") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar52 = 0;" (assignment_expression "uVar52 = 0" (identifier "uVar52") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" (else "else") (compound_statement "{\n                    dVar58 = (double)fVar59 * dVar57;\n                    uVar44 = 0xff;\n                    if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }\n                  }" ({ "{") (expression_statement "dVar58 = (double)fVar59 * dVar57;" (assignment_expression "dVar58 = (double)fVar59 * dVar57" (identifier "dVar58") (= "=") (binary_expression "(double)fVar59 * dVar57" (cast_expression "(double)fVar59" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar59")) (* "*") (identifier "dVar57"))) (; ";")) (expression_statement "uVar44 = 0xff;" (assignment_expression "uVar44 = 0xff" (identifier "uVar44") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar58 < dVar63) {\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }\n                    else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" (if "if") (parenthesized_expression "(dVar58 < dVar63)" (( "(") (binary_expression "dVar58 < dVar63" (identifier "dVar58") (< "<") (identifier "dVar63")) () ")")) (compound_statement "{\n                      dVar58 = dVar58 + dVar56;\n                      if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }\n                      uVar52 = (undefined1)uVar36;\n                      uVar45 = (undefined1)(uVar36 >> 8);\n                      uVar44 = (undefined1)(uVar36 >> 0x10);\n                      uVar37 = (undefined1)(uVar36 >> 0x18);\n                    }" ({ "{") (expression_statement "dVar58 = dVar58 + dVar56;" (assignment_expression "dVar58 = dVar58 + dVar56" (identifier "dVar58") (= "=") (binary_expression "dVar58 + dVar56" (identifier "dVar58") (+ "+") (identifier "dVar56"))) (; ";")) (if_statement "if (dVar58 < dVar65) {\n                        uVar36 = (uint)dVar58;\n                      }\n                      else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }" (if "if") (parenthesized_expression "(dVar58 < dVar65)" (( "(") (binary_expression "dVar58 < dVar65" (identifier "dVar58") (< "<") (identifier "dVar65")) () ")")) (compound_statement "{\n                        uVar36 = (uint)dVar58;\n                      }" ({ "{") (expression_statement "uVar36 = (uint)dVar58;" (assignment_expression "uVar36 = (uint)dVar58" (identifier "uVar36") (= "=") (cast_expression "(uint)dVar58" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar58"))) (; ";")) (} "}")) (else_clause "else {\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }" (else "else") (compound_statement "{\n                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;\n                      }" ({ "{") (expression_statement "uVar36 = (int)(dVar58 - dVar65) | 0x80000000;" (assignment_expression "uVar36 = (int)(dVar58 - dVar65) | 0x80000000" (identifier "uVar36") (= "=") (binary_expression "(int)(dVar58 - dVar65) | 0x80000000" (cast_expression "(int)(dVar58 - dVar65)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar58 - dVar65)" (( "(") (binary_expression "dVar58 - dVar65" (identifier "dVar58") (- "-") (identifier "dVar65")) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "uVar52 = (undefined1)uVar36;" (assignment_expression "uVar52 = (undefined1)uVar36" (identifier "uVar52") (= "=") (cast_expression "(undefined1)uVar36" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uVar36"))) (; ";")) (expression_statement "uVar45 = (undefined1)(uVar36 >> 8);" (assignment_expression "uVar45 = (undefined1)(uVar36 >> 8)" (identifier "uVar45") (= "=") (call_expression "(undefined1)(uVar36 >> 8)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(uVar36 >> 8)" (( "(") (binary_expression "uVar36 >> 8" (identifier "uVar36") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar44 = (undefined1)(uVar36 >> 0x10);" (assignment_expression "uVar44 = (undefined1)(uVar36 >> 0x10)" (identifier "uVar44") (= "=") (call_expression "(undefined1)(uVar36 >> 0x10)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(uVar36 >> 0x10)" (( "(") (binary_expression "uVar36 >> 0x10" (identifier "uVar36") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "uVar37 = (undefined1)(uVar36 >> 0x18);" (assignment_expression "uVar37 = (undefined1)(uVar36 >> 0x18)" (identifier "uVar37") (= "=") (call_expression "(undefined1)(uVar36 >> 0x18)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(uVar36 >> 0x18)" (( "(") (binary_expression "uVar36 >> 0x18" (identifier "uVar36") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" (else "else") (compound_statement "{\n                      uVar37 = 0xff;\n                      uVar45 = 0xff;\n                      uVar52 = 0xff;\n                    }" ({ "{") (expression_statement "uVar37 = 0xff;" (assignment_expression "uVar37 = 0xff" (identifier "uVar37") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" (identifier "uVar45") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "uVar52 = 0xff;" (assignment_expression "uVar52 = 0xff" (identifier "uVar52") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")))) (expression_statement "puVar28[8] = uVar37;" (assignment_expression "puVar28[8] = uVar37" (subscript_expression "puVar28[8]" (identifier "puVar28") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar37")) (; ";")) (expression_statement "puVar29 = puVar28 + 0xc;" (assignment_expression "puVar29 = puVar28 + 0xc" (identifier "puVar29") (= "=") (binary_expression "puVar28 + 0xc" (identifier "puVar28") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "puVar28[9] = uVar44;" (assignment_expression "puVar28[9] = uVar44" (subscript_expression "puVar28[9]" (identifier "puVar28") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar44")) (; ";")) (expression_statement "puVar28[10] = uVar45;" (assignment_expression "puVar28[10] = uVar45" (subscript_expression "puVar28[10]" (identifier "puVar28") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar45")) (; ";")) (expression_statement "puVar28[0xb] = uVar52;" (assignment_expression "puVar28[0xb] = uVar52" (subscript_expression "puVar28[0xb]" (identifier "puVar28") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "uVar52")) (; ";")) (} "}")) (else_clause "else {\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }" (else "else") (compound_statement "{\n                  if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  *puVar28 = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);\n                  if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }\n                  puVar28[1] = uVar45;\n                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);\n                  if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }\n                }" ({ "{") (if_statement "if (iVar46 != 8) {\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }" (if "if") (parenthesized_expression "(iVar46 != 8)" (( "(") (binary_expression "iVar46 != 8" (identifier "iVar46") (!= "!=") (number_literal "8")) () ")")) (compound_statement "{\n                    (**(code **)(puVar54 + 0x1539fc))(puVar27);\n                    puVar8 = (ushort *)0x5ca;\n                    (**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);\n                    if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }\n                    goto LAB_0025569c;\n                  }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x1539fc))(puVar27);" (call_expression "(**(code **)(puVar54 + 0x1539fc))(puVar27)" (parenthesized_expression "(**(code **)(puVar54 + 0x1539fc))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1539fc)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1539fc)" (* "*") (cast_expression "(code **)(puVar54 + 0x1539fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1539fc)" (( "(") (binary_expression "puVar54 + 0x1539fc" (identifier "puVar54") (+ "+") (number_literal "0x1539fc")) () ")"))))) () ")")) (argument_list "(puVar27)" (( "(") (identifier "puVar27") () ")"))) (; ";")) (expression_statement "puVar8 = (ushort *)0x5ca;" (assignment_expression "puVar8 = (ushort *)0x5ca" (identifier "puVar8") (= "=") (cast_expression "(ushort *)0x5ca" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5ca"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);" (call_expression "(**(code **)(puVar54 + 0x15395c))\n                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0)" (parenthesized_expression "(**(code **)(puVar54 + 0x15395c))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x15395c)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x15395c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15395c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15395c)" (( "(") (binary_expression "puVar54 + 0x15395c" (identifier "puVar54") (+ "+") (number_literal "0x15395c")) () ")"))))) () ")")) (argument_list "(puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,\n                               *(int *)(puVar54 + 0x153320) + -0x5aa8,\n                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0)" (( "(") (identifier "puVar38") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x74dc")) (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7284" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7284")) (, ",") (number_literal "0x5ca") (, ",") (number_literal "0x1a9") (, ",") (binary_expression "*(int *)(puVar54 + 0x153320) + -0x5aa8" (pointer_expression "*(int *)(puVar54 + 0x153320)" (* "*") (cast_expression "(int *)(puVar54 + 0x153320)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153320)" (( "(") (binary_expression "puVar54 + 0x153320" (identifier "puVar54") (+ "+") (number_literal "0x153320")) () ")")))) (+ "+") (number_literal "-0x5aa8")) (, ",") (binary_expression "*(int *)(puVar54 + 0x15331c) + 0x3e28" (pointer_expression "*(int *)(puVar54 + 0x15331c)" (* "*") (cast_expression "(int *)(puVar54 + 0x15331c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x15331c)" (( "(") (binary_expression "puVar54 + 0x15331c" (identifier "puVar54") (+ "+") (number_literal "0x15331c")) () ")")))) (+ "+") (number_literal "0x3e28")) (, ",") (binary_expression "puVar50 + 0x1a0" (identifier "puVar50") (+ "+") (number_literal "0x1a0")) () ")"))) (; ";")) (if_statement "if (*(int *)(iVar10 + 0xc) == 0) {\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }\n                    else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0xc) == 0" (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      (**(code **)(puVar54 + 0x1540c4))(puVar50);\n                    }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x1540c4))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x1540c4))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1540c4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1540c4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1540c4)" (* "*") (cast_expression "(code **)(puVar54 + 0x1540c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1540c4)" (( "(") (binary_expression "puVar54 + 0x1540c4" (identifier "puVar54") (+ "+") (number_literal "0x1540c4")) () ")"))))) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }" (else "else") (compound_statement "{\n                      do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);\n                      (**(code **)(puVar54 + 0x1540c4))(puVar38);\n                    }" ({ "{") (do_statement "do {\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      } while (puVar50 != (ushort *)0x0);" (do "do") (compound_statement "{\n                        puVar38 = puVar50;\n                        puVar50 = *(ushort **)(puVar38 + 0x19b2);\n                      }" ({ "{") (expression_statement "puVar38 = puVar50;" (assignment_expression "puVar38 = puVar50" (identifier "puVar38") (= "=") (identifier "puVar50")) (; ";")) (expression_statement "puVar50 = *(ushort **)(puVar38 + 0x19b2);" (assignment_expression "puVar50 = *(ushort **)(puVar38 + 0x19b2)" (identifier "puVar50") (= "=") (pointer_expression "*(ushort **)(puVar38 + 0x19b2)" (* "*") (cast_expression "(ushort **)(puVar38 + 0x19b2)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar38 + 0x19b2)" (( "(") (binary_expression "puVar38 + 0x19b2" (identifier "puVar38") (+ "+") (number_literal "0x19b2")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar50 != (ushort *)0x0)" (( "(") (binary_expression "puVar50 != (ushort *)0x0" (identifier "puVar50") (!= "!=") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1540c4))(puVar38);" (call_expression "(**(code **)(puVar54 + 0x1540c4))(puVar38)" (parenthesized_expression "(**(code **)(puVar54 + 0x1540c4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1540c4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1540c4)" (* "*") (cast_expression "(code **)(puVar54 + 0x1540c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1540c4)" (( "(") (binary_expression "puVar54 + 0x1540c4" (identifier "puVar54") (+ "+") (number_literal "0x1540c4")) () ")"))))) () ")")) (argument_list "(puVar38)" (( "(") (identifier "puVar38") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0025569c;" (goto "goto") (statement_identifier "LAB_0025569c") (; ";")) (} "}"))) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" (identifier "fVar59") (= "=") (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" (* "*") (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x28)" (( "(") (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x28" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" (* "*") (cast_expression "(int *)(puVar50 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x14)" (( "(") (binary_expression "puVar50 + 0x14" (identifier "puVar50") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (identifier "iVar32")) (+ "+") (number_literal "0x28")) () ")")))))) (; ";")) (if_statement "if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(fVar59 <= 0.0)" (( "(") (binary_expression "fVar59 <= 0.0" (identifier "fVar59") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                    uVar45 = 0;\n                  }" ({ "{") (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" (identifier "uVar45") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" (else "else") (compound_statement "{\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" ({ "{") (expression_statement "dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);" (assignment_expression "dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0)" (identifier "dVar58") (= "=") (binary_expression "(double)fVar59 / *(double *)(iVar40 + -0x5af0)" (cast_expression "(double)fVar59" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar59")) (/ "/") (pointer_expression "*(double *)(iVar40 + -0x5af0)" (* "*") (cast_expression "(double *)(iVar40 + -0x5af0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar40 + -0x5af0)" (( "(") (binary_expression "iVar40 + -0x5af0" (identifier "iVar40") (+ "+") (number_literal "-0x5af0")) () ")")))))) (; ";")) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" (identifier "uVar45") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }" (if "if") (parenthesized_expression "(dVar58 < *(double *)(iVar39 + -0x5ae8))" (( "(") (binary_expression "dVar58 < *(double *)(iVar39 + -0x5ae8)" (identifier "dVar58") (< "<") (pointer_expression "*(double *)(iVar39 + -0x5ae8)" (* "*") (cast_expression "(double *)(iVar39 + -0x5ae8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar39 + -0x5ae8)" (( "(") (binary_expression "iVar39 + -0x5ae8" (identifier "iVar39") (+ "+") (number_literal "-0x5ae8")) () ")"))))) () ")")) (compound_statement "{\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }" ({ "{") (expression_statement "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400)" (identifier "dVar58") (= "=") (binary_expression "dVar58 + *(double *)(iVar49 + 0x1400)" (identifier "dVar58") (+ "+") (pointer_expression "*(double *)(iVar49 + 0x1400)" (* "*") (cast_expression "(double *)(iVar49 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x1400)" (( "(") (binary_expression "iVar49 + 0x1400" (identifier "iVar49") (+ "+") (number_literal "0x1400")) () ")")))))) (; ";")) (if_statement "if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" (if "if") (parenthesized_expression "(dVar58 < *(double *)(iVar51 + 0x1410))" (( "(") (binary_expression "dVar58 < *(double *)(iVar51 + 0x1410)" (identifier "dVar58") (< "<") (pointer_expression "*(double *)(iVar51 + 0x1410)" (* "*") (cast_expression "(double *)(iVar51 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar51 + 0x1410)" (( "(") (binary_expression "iVar51 + 0x1410" (identifier "iVar51") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")) (compound_statement "{\n                        uVar45 = (undefined1)(int)dVar58;\n                      }" ({ "{") (expression_statement "uVar45 = (undefined1)(int)dVar58;" (assignment_expression "uVar45 = (undefined1)(int)dVar58" (identifier "uVar45") (= "=") (cast_expression "(undefined1)(int)dVar58" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (cast_expression "(int)dVar58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar58")))) (; ";")) (} "}")) (else_clause "else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" (else "else") (compound_statement "{\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" ({ "{") (expression_statement "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));" (assignment_expression "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" (identifier "uVar45") (= "=") (call_expression "(undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(int)" (( "(") (identifier "int") () ")"))) (argument_list "(dVar58 - *(double *)(iVar51 + 0x1410))" (( "(") (binary_expression "dVar58 - *(double *)(iVar51 + 0x1410)" (identifier "dVar58") (- "-") (pointer_expression "*(double *)(iVar51 + 0x1410)" (* "*") (cast_expression "(double *)(iVar51 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar51 + 0x1410)" (( "(") (binary_expression "iVar51 + 0x1410" (identifier "iVar51") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")))) (; ";")) (} "}")))) (} "}"))) (} "}")))) (expression_statement "*puVar28 = uVar45;" (assignment_expression "*puVar28 = uVar45" (pointer_expression "*puVar28" (* "*") (identifier "puVar28")) (= "=") (identifier "uVar45")) (; ";")) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" (identifier "fVar59") (= "=") (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" (* "*") (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x30)" (( "(") (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x30" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" (* "*") (cast_expression "(int *)(puVar50 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x14)" (( "(") (binary_expression "puVar50 + 0x14" (identifier "puVar50") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (identifier "iVar32")) (+ "+") (number_literal "0x30")) () ")")))))) (; ";")) (if_statement "if (fVar59 <= 0.0) {\n                    uVar45 = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(fVar59 <= 0.0)" (( "(") (binary_expression "fVar59 <= 0.0" (identifier "fVar59") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                    uVar45 = 0;\n                  }" ({ "{") (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" (identifier "uVar45") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" (else "else") (compound_statement "{\n                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);\n                    uVar45 = 0xff;\n                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }\n                  }" ({ "{") (expression_statement "dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);" (assignment_expression "dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0)" (identifier "dVar58") (= "=") (binary_expression "(double)fVar59 / *(double *)(iVar40 + -0x5af0)" (cast_expression "(double)fVar59" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar59")) (/ "/") (pointer_expression "*(double *)(iVar40 + -0x5af0)" (* "*") (cast_expression "(double *)(iVar40 + -0x5af0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar40 + -0x5af0)" (( "(") (binary_expression "iVar40 + -0x5af0" (identifier "iVar40") (+ "+") (number_literal "-0x5af0")) () ")")))))) (; ";")) (expression_statement "uVar45 = 0xff;" (assignment_expression "uVar45 = 0xff" (identifier "uVar45") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }" (if "if") (parenthesized_expression "(dVar58 < *(double *)(iVar39 + -0x5ae8))" (( "(") (binary_expression "dVar58 < *(double *)(iVar39 + -0x5ae8)" (identifier "dVar58") (< "<") (pointer_expression "*(double *)(iVar39 + -0x5ae8)" (* "*") (cast_expression "(double *)(iVar39 + -0x5ae8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar39 + -0x5ae8)" (( "(") (binary_expression "iVar39 + -0x5ae8" (identifier "iVar39") (+ "+") (number_literal "-0x5ae8")) () ")"))))) () ")")) (compound_statement "{\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                    }" ({ "{") (expression_statement "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400)" (identifier "dVar58") (= "=") (binary_expression "dVar58 + *(double *)(iVar49 + 0x1400)" (identifier "dVar58") (+ "+") (pointer_expression "*(double *)(iVar49 + 0x1400)" (* "*") (cast_expression "(double *)(iVar49 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x1400)" (( "(") (binary_expression "iVar49 + 0x1400" (identifier "iVar49") (+ "+") (number_literal "0x1400")) () ")")))))) (; ";")) (if_statement "if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" (if "if") (parenthesized_expression "(dVar58 < *(double *)(iVar51 + 0x1410))" (( "(") (binary_expression "dVar58 < *(double *)(iVar51 + 0x1410)" (identifier "dVar58") (< "<") (pointer_expression "*(double *)(iVar51 + 0x1410)" (* "*") (cast_expression "(double *)(iVar51 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar51 + 0x1410)" (( "(") (binary_expression "iVar51 + 0x1410" (identifier "iVar51") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")) (compound_statement "{\n                        uVar45 = (undefined1)(int)dVar58;\n                      }" ({ "{") (expression_statement "uVar45 = (undefined1)(int)dVar58;" (assignment_expression "uVar45 = (undefined1)(int)dVar58" (identifier "uVar45") (= "=") (cast_expression "(undefined1)(int)dVar58" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (cast_expression "(int)dVar58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar58")))) (; ";")) (} "}")) (else_clause "else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" (else "else") (compound_statement "{\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" ({ "{") (expression_statement "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));" (assignment_expression "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" (identifier "uVar45") (= "=") (call_expression "(undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(int)" (( "(") (identifier "int") () ")"))) (argument_list "(dVar58 - *(double *)(iVar51 + 0x1410))" (( "(") (binary_expression "dVar58 - *(double *)(iVar51 + 0x1410)" (identifier "dVar58") (- "-") (pointer_expression "*(double *)(iVar51 + 0x1410)" (* "*") (cast_expression "(double *)(iVar51 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar51 + 0x1410)" (( "(") (binary_expression "iVar51 + 0x1410" (identifier "iVar51") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")))) (; ";")) (} "}")))) (} "}"))) (} "}")))) (expression_statement "puVar28[1] = uVar45;" (assignment_expression "puVar28[1] = uVar45" (subscript_expression "puVar28[1]" (identifier "puVar28") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar45")) (; ";")) (expression_statement "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);" (assignment_expression "fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" (identifier "fVar59") (= "=") (cast_expression "(float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" (* "*") (cast_expression "(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar50 + 0x14) + iVar32 + 0x38)" (( "(") (binary_expression "*(int *)(puVar50 + 0x14) + iVar32 + 0x38" (binary_expression "*(int *)(puVar50 + 0x14) + iVar32" (pointer_expression "*(int *)(puVar50 + 0x14)" (* "*") (cast_expression "(int *)(puVar50 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x14)" (( "(") (binary_expression "puVar50 + 0x14" (identifier "puVar50") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (identifier "iVar32")) (+ "+") (number_literal "0x38")) () ")")))))) (; ";")) (if_statement "if (fVar59 <= 0.0) {\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }\n                  else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }" (if "if") (parenthesized_expression "(fVar59 <= 0.0)" (( "(") (binary_expression "fVar59 <= 0.0" (identifier "fVar59") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                    puVar29 = puVar28 + 3;\n                    puVar28[2] = 0;\n                  }" ({ "{") (expression_statement "puVar29 = puVar28 + 3;" (assignment_expression "puVar29 = puVar28 + 3" (identifier "puVar29") (= "=") (binary_expression "puVar28 + 3" (identifier "puVar28") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "puVar28[2] = 0;" (assignment_expression "puVar28[2] = 0" (subscript_expression "puVar28[2]" (identifier "puVar28") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }" (else "else") (compound_statement "{\n                    dVar58 = (double)fVar59 / dVar61;\n                    if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }\n                  }" ({ "{") (expression_statement "dVar58 = (double)fVar59 / dVar61;" (assignment_expression "dVar58 = (double)fVar59 / dVar61" (identifier "dVar58") (= "=") (binary_expression "(double)fVar59 / dVar61" (cast_expression "(double)fVar59" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar59")) (/ "/") (identifier "dVar61"))) (; ";")) (if_statement "if (dVar58 < dVar64) {\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }\n                    else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }" (if "if") (parenthesized_expression "(dVar58 < dVar64)" (( "(") (binary_expression "dVar58 < dVar64" (identifier "dVar58") (< "<") (identifier "dVar64")) () ")")) (compound_statement "{\n                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);\n                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }\n                      puVar28[2] = uVar45;\n                      puVar29 = puVar28 + 3;\n                    }" ({ "{") (expression_statement "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);" (assignment_expression "dVar58 = dVar58 + *(double *)(iVar49 + 0x1400)" (identifier "dVar58") (= "=") (binary_expression "dVar58 + *(double *)(iVar49 + 0x1400)" (identifier "dVar58") (+ "+") (pointer_expression "*(double *)(iVar49 + 0x1400)" (* "*") (cast_expression "(double *)(iVar49 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x1400)" (( "(") (binary_expression "iVar49 + 0x1400" (identifier "iVar49") (+ "+") (number_literal "0x1400")) () ")")))))) (; ";")) (if_statement "if (dVar58 < *(double *)(iVar51 + 0x1410)) {\n                        uVar45 = (undefined1)(int)dVar58;\n                      }\n                      else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" (if "if") (parenthesized_expression "(dVar58 < *(double *)(iVar51 + 0x1410))" (( "(") (binary_expression "dVar58 < *(double *)(iVar51 + 0x1410)" (identifier "dVar58") (< "<") (pointer_expression "*(double *)(iVar51 + 0x1410)" (* "*") (cast_expression "(double *)(iVar51 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar51 + 0x1410)" (( "(") (binary_expression "iVar51 + 0x1410" (identifier "iVar51") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")) (compound_statement "{\n                        uVar45 = (undefined1)(int)dVar58;\n                      }" ({ "{") (expression_statement "uVar45 = (undefined1)(int)dVar58;" (assignment_expression "uVar45 = (undefined1)(int)dVar58" (identifier "uVar45") (= "=") (cast_expression "(undefined1)(int)dVar58" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (cast_expression "(int)dVar58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar58")))) (; ";")) (} "}")) (else_clause "else {\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" (else "else") (compound_statement "{\n                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));\n                      }" ({ "{") (expression_statement "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));" (assignment_expression "uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" (identifier "uVar45") (= "=") (call_expression "(undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410))" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(int)" (( "(") (identifier "int") () ")"))) (argument_list "(dVar58 - *(double *)(iVar51 + 0x1410))" (( "(") (binary_expression "dVar58 - *(double *)(iVar51 + 0x1410)" (identifier "dVar58") (- "-") (pointer_expression "*(double *)(iVar51 + 0x1410)" (* "*") (cast_expression "(double *)(iVar51 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar51 + 0x1410)" (( "(") (binary_expression "iVar51 + 0x1410" (identifier "iVar51") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")))) (; ";")) (} "}")))) (expression_statement "puVar28[2] = uVar45;" (assignment_expression "puVar28[2] = uVar45" (subscript_expression "puVar28[2]" (identifier "puVar28") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar45")) (; ";")) (expression_statement "puVar29 = puVar28 + 3;" (assignment_expression "puVar29 = puVar28 + 3" (identifier "puVar29") (= "=") (binary_expression "puVar28 + 3" (identifier "puVar28") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (else_clause "else {\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }" (else "else") (compound_statement "{\n                      puVar29 = puVar28 + 3;\n                      puVar28[2] = 0xff;\n                    }" ({ "{") (expression_statement "puVar29 = puVar28 + 3;" (assignment_expression "puVar29 = puVar28 + 3" (identifier "puVar29") (= "=") (binary_expression "puVar28 + 3" (identifier "puVar28") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "puVar28[2] = 0xff;" (assignment_expression "puVar28[2] = 0xff" (subscript_expression "puVar28[2]" (identifier "puVar28") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")))) (} "}")))))) (expression_statement "iVar24 = *(int *)(puVar50 + 0x12);" (assignment_expression "iVar24 = *(int *)(puVar50 + 0x12)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar50 + 0x12)" (* "*") (cast_expression "(int *)(puVar50 + 0x12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar50 + 0x12)" (( "(") (binary_expression "puVar50 + 0x12" (identifier "puVar50") (+ "+") (number_literal "0x12")) () ")"))))) (; ";")) (expression_statement "iVar34 = iVar34 + 1;" (assignment_expression "iVar34 = iVar34 + 1" (identifier "iVar34") (= "=") (binary_expression "iVar34 + 1" (identifier "iVar34") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar32 = iVar32 + 0x58;" (assignment_expression "iVar32 = iVar32 + 0x58" (identifier "iVar32") (= "=") (binary_expression "iVar32 + 0x58" (identifier "iVar32") (+ "+") (number_literal "0x58"))) (; ";")) (expression_statement "puVar28 = puVar29;" (assignment_expression "puVar28 = puVar29" (identifier "puVar28") (= "=") (identifier "puVar29")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar34 < iVar24)" (( "(") (binary_expression "iVar34 < iVar24" (identifier "iVar34") (< "<") (identifier "iVar24")) () ")")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);" (call_expression "(**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27)" (parenthesized_expression "(**(code **)(puVar54 + 0x1543d0))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1543d0)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1543d0)" (* "*") (cast_expression "(code **)(puVar54 + 0x1543d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1543d0)" (( "(") (binary_expression "puVar54 + 0x1543d0" (identifier "puVar54") (+ "+") (number_literal "0x1543d0")) () ")"))))) () ")")) (argument_list "(puVar50,uVar13 * iVar24,puVar27)" (( "(") (identifier "puVar50") (, ",") (binary_expression "uVar13 * iVar24" (identifier "uVar13") (* "*") (identifier "iVar24")) (, ",") (identifier "puVar27") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1539fc))(puVar27);" (call_expression "(**(code **)(puVar54 + 0x1539fc))(puVar27)" (parenthesized_expression "(**(code **)(puVar54 + 0x1539fc))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1539fc)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1539fc)" (* "*") (cast_expression "(code **)(puVar54 + 0x1539fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1539fc)" (( "(") (binary_expression "puVar54 + 0x1539fc" (identifier "puVar54") (+ "+") (number_literal "0x1539fc")) () ")"))))) () ")")) (argument_list "(puVar27)" (( "(") (identifier "puVar27") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1537fc);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1537fc)" (identifier "pcVar55") (= "=") (pointer_expression "*(code **)(puVar54 + 0x1537fc)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537fc)" (( "(") (binary_expression "puVar54 + 0x1537fc" (identifier "puVar54") (+ "+") (number_literal "0x1537fc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }" (else "else") (compound_statement "{\n          (**(code **)(puVar54 + 0x1538c8))(puVar50);\n          while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }\n          pcVar55 = *(code **)(puVar54 + 0x1537fc);\n          if (*(int *)puVar50 == 2) goto LAB_002561e8;\n        }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x1538c8))(puVar50);" (call_expression "(**(code **)(puVar54 + 0x1538c8))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1538c8))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1538c8)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1538c8)" (* "*") (cast_expression "(code **)(puVar54 + 0x1538c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1538c8)" (( "(") (binary_expression "puVar54 + 0x1538c8" (identifier "puVar54") (+ "+") (number_literal "0x1538c8")) () ")"))))) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")"))) (; ";")) (while_statement "while( true ) {\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);\n            if (iVar24 == 0) break;\n            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);\n            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);\n            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);\n            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);\n          }" ({ "{") (expression_statement "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);" (assignment_expression "iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50)" (identifier "iVar24") (= "=") (call_expression "(**(code **)(puVar54 + 0x153948))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153948))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153948)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153948)" (* "*") (cast_expression "(code **)(puVar54 + 0x153948)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153948)" (( "(") (binary_expression "puVar54 + 0x153948" (identifier "puVar54") (+ "+") (number_literal "0x153948")) () ")"))))) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")")))) (; ";")) (if_statement "if (iVar24 == 0) break;" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24)" (identifier "uVar48") (= "=") (call_expression "(**(code **)(puVar54 + 0x153e14))(puVar50,iVar24)" (parenthesized_expression "(**(code **)(puVar54 + 0x153e14))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153e14)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153e14)" (* "*") (cast_expression "(code **)(puVar54 + 0x153e14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153e14)" (( "(") (binary_expression "puVar54 + 0x153e14" (identifier "puVar54") (+ "+") (number_literal "0x153e14")) () ")"))))) () ")")) (argument_list "(puVar50,iVar24)" (( "(") (identifier "puVar50") (, ",") (identifier "iVar24") () ")")))) (; ";")) (expression_statement "uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);" (assignment_expression "uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48)" (identifier "uVar23") (= "=") (call_expression "(**(code **)(puVar54 + 0x153784))(uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x153784))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153784)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153784)" (* "*") (cast_expression "(code **)(puVar54 + 0x153784)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153784)" (( "(") (binary_expression "puVar54 + 0x153784" (identifier "puVar54") (+ "+") (number_literal "0x153784")) () ")"))))) () ")")) (argument_list "(uVar48)" (( "(") (identifier "uVar48") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);" (call_expression "(**(code **)(puVar54 + 0x153d10))(puVar50,uVar23)" (parenthesized_expression "(**(code **)(puVar54 + 0x153d10))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153d10)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153d10)" (* "*") (cast_expression "(code **)(puVar54 + 0x153d10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153d10)" (( "(") (binary_expression "puVar54 + 0x153d10" (identifier "puVar54") (+ "+") (number_literal "0x153d10")) () ")"))))) () ")")) (argument_list "(puVar50,uVar23)" (( "(") (identifier "puVar50") (, ",") (identifier "uVar23") () ")"))) (; ";")) (expression_statement "uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);" (assignment_expression "uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48)" (identifier "uVar23") (= "=") (call_expression "(**(code **)(puVar54 + 0x153784))(uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x153784))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153784)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153784)" (* "*") (cast_expression "(code **)(puVar54 + 0x153784)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153784)" (( "(") (binary_expression "puVar54 + 0x153784" (identifier "puVar54") (+ "+") (number_literal "0x153784")) () ")"))))) () ")")) (argument_list "(uVar48)" (( "(") (identifier "uVar48") () ")")))) (; ";")) (expression_statement "uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);" (assignment_expression "uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48)" (identifier "uVar48") (= "=") (call_expression "(**(code **)(puVar54 + 0x1538a4))(uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1538a4))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1538a4)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1538a4)" (* "*") (cast_expression "(code **)(puVar54 + 0x1538a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1538a4)" (( "(") (binary_expression "puVar54 + 0x1538a4" (identifier "puVar54") (+ "+") (number_literal "0x1538a4")) () ")"))))) () ")")) (argument_list "(uVar48)" (( "(") (identifier "uVar48") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);" (call_expression "(**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48)" (parenthesized_expression "(**(code **)(puVar54 + 0x1543d0))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1543d0)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1543d0)" (* "*") (cast_expression "(code **)(puVar54 + 0x1543d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1543d0)" (( "(") (binary_expression "puVar54 + 0x1543d0" (identifier "puVar54") (+ "+") (number_literal "0x1543d0")) () ")"))))) () ")")) (argument_list "(puVar50,uVar23,uVar48)" (( "(") (identifier "puVar50") (, ",") (identifier "uVar23") (, ",") (identifier "uVar48") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1537fc);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1537fc)" (identifier "pcVar55") (= "=") (pointer_expression "*(code **)(puVar54 + 0x1537fc)" (* "*") (cast_expression "(code **)(puVar54 + 0x1537fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1537fc)" (( "(") (binary_expression "puVar54 + 0x1537fc" (identifier "puVar54") (+ "+") (number_literal "0x1537fc")) () ")"))))) (; ";")) (if_statement "if (*(int *)puVar50 == 2) goto LAB_002561e8;" (if "if") (parenthesized_expression "(*(int *)puVar50 == 2)" (( "(") (binary_expression "*(int *)puVar50 == 2" (pointer_expression "*(int *)puVar50" (* "*") (cast_expression "(int *)puVar50" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar50"))) (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_002561e8;" (goto "goto") (statement_identifier "LAB_002561e8") (; ";"))) (} "}")))) (expression_statement "puVar8 = (ushort *)&uStack_5150;" (assignment_expression "puVar8 = (ushort *)&uStack_5150" (identifier "puVar8") (= "=") (cast_expression "(ushort *)&uStack_5150" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&uStack_5150" (& "&") (identifier "uStack_5150")))) (; ";")) (expression_statement "iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);" (assignment_expression "iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38)" (identifier "iVar46") (= "=") (call_expression "(*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38)" (parenthesized_expression "(*pcVar55)" (( "(") (pointer_expression "*pcVar55" (* "*") (identifier "pcVar55")) () ")")) (argument_list "(puVar50,auStack_4144,0,puVar8,puVar38)" (( "(") (identifier "puVar50") (, ",") (identifier "auStack_4144") (, ",") (number_literal "0") (, ",") (identifier "puVar8") (, ",") (identifier "puVar38") () ")")))) (; ";")) (if_statement "if (iVar46 == 0) {\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }" (if "if") (parenthesized_expression "(iVar46 == 0)" (( "(") (binary_expression "iVar46 == 0" (identifier "iVar46") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar8 = (ushort *)0x605;\n          (**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);\n          puVar38 = puVar50;\n          if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }\n          goto LAB_00255ea8;\n        }" ({ "{") (expression_statement "puVar8 = (ushort *)0x605;" (assignment_expression "puVar8 = (ushort *)0x605" (identifier "puVar8") (= "=") (cast_expression "(ushort *)0x605" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x605"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0);" (call_expression "(**(code **)(puVar54 + 0x15395c))\n                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0)" (parenthesized_expression "(**(code **)(puVar54 + 0x15395c))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x15395c)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x15395c)" (* "*") (cast_expression "(code **)(puVar54 + 0x15395c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x15395c)" (( "(") (binary_expression "puVar54 + 0x15395c" (identifier "puVar54") (+ "+") (number_literal "0x15395c")) () ")"))))) () ")")) (argument_list "(puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,\n                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,\n                     puVar50 + 0x1a0)" (( "(") (identifier "puVar38") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x74dc")) (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7284" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7284")) (, ",") (number_literal "0x605") (, ",") (number_literal "0x1bd") (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x7450" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x7450")) (, ",") (binary_expression "*(int *)(puVar54 + 0x15331c) + 0x3e28" (pointer_expression "*(int *)(puVar54 + 0x15331c)" (* "*") (cast_expression "(int *)(puVar54 + 0x15331c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x15331c)" (( "(") (binary_expression "puVar54 + 0x15331c" (identifier "puVar54") (+ "+") (number_literal "0x15331c")) () ")")))) (+ "+") (number_literal "0x3e28")) (, ",") (binary_expression "puVar50 + 0x1a0" (identifier "puVar50") (+ "+") (number_literal "0x1a0")) () ")"))) (; ";")) (expression_statement "puVar38 = puVar50;" (assignment_expression "puVar38 = puVar50" (identifier "puVar38") (= "=") (identifier "puVar50")) (; ";")) (if_statement "if (*(int *)(iVar10 + 0xc) == 0) {\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }\n          else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0xc) == 0" (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar55 = *(code **)(puVar54 + 0x1540c4);\n          }" ({ "{") (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1540c4);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1540c4)" (identifier "pcVar55") (= "=") (pointer_expression "*(code **)(puVar54 + 0x1540c4)" (* "*") (cast_expression "(code **)(puVar54 + 0x1540c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1540c4)" (( "(") (binary_expression "puVar54 + 0x1540c4" (identifier "puVar54") (+ "+") (number_literal "0x1540c4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }" (else "else") (compound_statement "{\n            do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);\n          }" ({ "{") (do_statement "do {\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);" (do "do") (compound_statement "{\n              puVar50 = puVar38;\n              pcVar55 = *(code **)(puVar54 + 0x1540c4);\n              puVar38 = *(ushort **)(puVar50 + 0x19b2);\n            }" ({ "{") (expression_statement "puVar50 = puVar38;" (assignment_expression "puVar50 = puVar38" (identifier "puVar50") (= "=") (identifier "puVar38")) (; ";")) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1540c4);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1540c4)" (identifier "pcVar55") (= "=") (pointer_expression "*(code **)(puVar54 + 0x1540c4)" (* "*") (cast_expression "(code **)(puVar54 + 0x1540c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1540c4)" (( "(") (binary_expression "puVar54 + 0x1540c4" (identifier "puVar54") (+ "+") (number_literal "0x1540c4")) () ")"))))) (; ";")) (expression_statement "puVar38 = *(ushort **)(puVar50 + 0x19b2);" (assignment_expression "puVar38 = *(ushort **)(puVar50 + 0x19b2)" (identifier "puVar38") (= "=") (pointer_expression "*(ushort **)(puVar50 + 0x19b2)" (* "*") (cast_expression "(ushort **)(puVar50 + 0x19b2)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar50 + 0x19b2)" (( "(") (binary_expression "puVar50 + 0x19b2" (identifier "puVar50") (+ "+") (number_literal "0x19b2")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0)" (( "(") (binary_expression "*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0" (pointer_expression "*(ushort **)(puVar50 + 0x19b2)" (* "*") (cast_expression "(ushort **)(puVar50 + 0x19b2)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar50 + 0x19b2)" (( "(") (binary_expression "puVar50 + 0x19b2" (identifier "puVar50") (+ "+") (number_literal "0x19b2")) () ")")))) (!= "!=") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}")))) (goto_statement "goto LAB_00255ea8;" (goto "goto") (statement_identifier "LAB_00255ea8") (; ";")) (} "}"))) (expression_statement "iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);" (assignment_expression "iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50)" (identifier "iVar24") (= "=") (call_expression "(**(code **)(puVar54 + 0x153eac))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153eac))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153eac)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153eac)" (* "*") (cast_expression "(code **)(puVar54 + 0x153eac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153eac)" (( "(") (binary_expression "puVar54 + 0x153eac" (identifier "puVar54") (+ "+") (number_literal "0x153eac")) () ")"))))) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")")))) (; ";")) (if_statement "if (iVar24 == 0) break;" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);" (assignment_expression "puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50)" (identifier "puVar50") (= "=") (cast_expression "(ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar54 + 0x153e44))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x153e44))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153e44)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153e44)" (* "*") (cast_expression "(code **)(puVar54 + 0x153e44)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153e44)" (( "(") (binary_expression "puVar54 + 0x153e44" (identifier "puVar54") (+ "+") (number_literal "0x153e44")) () ")"))))) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")"))))) (; ";")) (if_statement "if (*(code **)(puVar50 + 0x194) != (code *)0x0) {\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }" (if "if") (parenthesized_expression "(*(code **)(puVar50 + 0x194) != (code *)0x0)" (( "(") (binary_expression "*(code **)(puVar50 + 0x194) != (code *)0x0" (pointer_expression "*(code **)(puVar50 + 0x194)" (* "*") (cast_expression "(code **)(puVar50 + 0x194)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar50 + 0x194)" (( "(") (binary_expression "puVar50 + 0x194" (identifier "puVar50") (+ "+") (number_literal "0x194")) () ")")))) (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          puVar8 = puStack_5188;\n          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);\n          if (iVar46 == 0) break;\n        }" ({ "{") (expression_statement "puVar8 = puStack_5188;" (assignment_expression "puVar8 = puStack_5188" (identifier "puVar8") (= "=") (identifier "puStack_5188")) (; ";")) (expression_statement "iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);" (assignment_expression "iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150)" (identifier "iVar46") (= "=") (call_expression "(**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150)" (parenthesized_expression "(**(code **)(puVar50 + 0x194))" (( "(") (pointer_expression "**(code **)(puVar50 + 0x194)" (* "*") (pointer_expression "*(code **)(puVar50 + 0x194)" (* "*") (cast_expression "(code **)(puVar50 + 0x194)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar50 + 0x194)" (( "(") (binary_expression "puVar50 + 0x194" (identifier "puVar50") (+ "+") (number_literal "0x194")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar54 + 0x153328) + -0x150)" (( "(") (binary_expression "*(int *)(puVar54 + 0x153328) + -0x150" (pointer_expression "*(int *)(puVar54 + 0x153328)" (* "*") (cast_expression "(int *)(puVar54 + 0x153328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153328)" (( "(") (binary_expression "puVar54 + 0x153328" (identifier "puVar54") (+ "+") (number_literal "0x153328")) () ")")))) (+ "+") (number_literal "-0x150")) () ")")))) (; ";")) (if_statement "if (iVar46 == 0) break;" (if "if") (parenthesized_expression "(iVar46 == 0)" (( "(") (binary_expression "iVar46 == 0" (identifier "iVar46") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (expression_statement "puStack_5188 = (ushort *)((int)puStack_5188 + 1);" (assignment_expression "puStack_5188 = (ushort *)((int)puStack_5188 + 1)" (identifier "puStack_5188") (= "=") (cast_expression "(ushort *)((int)puStack_5188 + 1)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puStack_5188 + 1)" (( "(") (binary_expression "(int)puStack_5188 + 1" (cast_expression "(int)puStack_5188" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_5188")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int *)(iVar10 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0xc) != 0" (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "pcVar55 = *(code **)(puVar54 + 0x1540c4);" (assignment_expression "pcVar55 = *(code **)(puVar54 + 0x1540c4)" (identifier "pcVar55") (= "=") (pointer_expression "*(code **)(puVar54 + 0x1540c4)" (* "*") (cast_expression "(code **)(puVar54 + 0x1540c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1540c4)" (( "(") (binary_expression "puVar54 + 0x1540c4" (identifier "puVar54") (+ "+") (number_literal "0x1540c4")) () ")"))))) (; ";")) (labeled_statement "LAB_00255ea8:\n      (*pcVar55)(puVar50);" (statement_identifier "LAB_00255ea8") (: ":") (expression_statement "(*pcVar55)(puVar50);" (call_expression "(*pcVar55)(puVar50)" (parenthesized_expression "(*pcVar55)" (( "(") (pointer_expression "*pcVar55" (* "*") (identifier "pcVar55")) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")"))) (; ";"))) (} "}")))) (if_statement "if (iStack_3144 == *piVar18) {\n      return iVar46;\n    }" (if "if") (parenthesized_expression "(iStack_3144 == *piVar18)" (( "(") (binary_expression "iStack_3144 == *piVar18" (identifier "iStack_3144") (== "==") (pointer_expression "*piVar18" (* "*") (identifier "piVar18"))) () ")")) (compound_statement "{\n      return iVar46;\n    }" ({ "{") (return_statement "return iVar46;" (return "return") (identifier "iVar46") (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar54 + 0x153aa0))();" (call_expression "(**(code **)(puVar54 + 0x153aa0))()" (parenthesized_expression "(**(code **)(puVar54 + 0x153aa0))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153aa0)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153aa0)" (* "*") (cast_expression "(code **)(puVar54 + 0x153aa0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153aa0)" (( "(") (binary_expression "puVar54 + 0x153aa0" (identifier "puVar54") (+ "+") (number_literal "0x153aa0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar10 = (**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a);" (assignment_expression "iVar10 = (**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(puVar54 + 0x154044))\n                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a)" (parenthesized_expression "(**(code **)(puVar54 + 0x154044))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x154044)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x154044)" (* "*") (cast_expression "(code **)(puVar54 + 0x154044)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x154044)" (( "(") (binary_expression "puVar54 + 0x154044" (identifier "puVar54") (+ "+") (number_literal "0x154044")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,\n                      0x485,puVar8 + -0x393a)" (( "(") (binary_expression "*(int *)(puVar54 + 0x15331c) + 0xdd0" (pointer_expression "*(int *)(puVar54 + 0x15331c)" (* "*") (cast_expression "(int *)(puVar54 + 0x15331c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x15331c)" (( "(") (binary_expression "puVar54 + 0x15331c" (identifier "puVar54") (+ "+") (number_literal "0x15331c")) () ")")))) (+ "+") (number_literal "0xdd0")) (, ",") (binary_expression "*(int *)(puVar54 + 0x153388) + -0x74dc" (pointer_expression "*(int *)(puVar54 + 0x153388)" (* "*") (cast_expression "(int *)(puVar54 + 0x153388)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar54 + 0x153388)" (( "(") (binary_expression "puVar54 + 0x153388" (identifier "puVar54") (+ "+") (number_literal "0x153388")) () ")")))) (+ "+") (number_literal "-0x74dc")) (, ",") (number_literal "0x485") (, ",") (binary_expression "puVar8 + -0x393a" (identifier "puVar8") (+ "+") (number_literal "-0x393a")) () ")")))) (; ";")) (return_statement "return iVar10;" (return "return") (identifier "iVar10") (; ";")) (labeled_statement "LAB_00255f3c:\n  do {\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  } while (pbVar25 != pbVar53);" (statement_identifier "LAB_00255f3c") (: ":") (do_statement "do {\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  } while (pbVar25 != pbVar53);" (do "do") (compound_statement "{\n    if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    pbVar25 = pbVar25 + 1;\n  }" ({ "{") (if_statement "if (*pbVar25 == 0x7d) {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }\n    else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }" (if "if") (parenthesized_expression "(*pbVar25 == 0x7d)" (( "(") (binary_expression "*pbVar25 == 0x7d" (pointer_expression "*pbVar25" (* "*") (identifier "pbVar25")) (== "==") (number_literal "0x7d")) () ")")) (compound_statement "{\n      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0x5c)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153a18)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153a18)" (* "*") (cast_expression "(code **)(puVar54 + 0x153a18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153a18)" (( "(") (binary_expression "puVar54 + 0x153a18" (identifier "puVar54") (+ "+") (number_literal "0x153a18")) () ")"))))) () ")")) (argument_list "(puVar50,0x5c)" (( "(") (identifier "puVar50") (, ",") (number_literal "0x5c") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153a18)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153a18)" (* "*") (cast_expression "(code **)(puVar54 + 0x153a18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153a18)" (( "(") (binary_expression "puVar54 + 0x153a18" (identifier "puVar54") (+ "+") (number_literal "0x153a18")) () ")"))))) () ")")) (argument_list "(puVar50,*pbVar25)" (( "(") (identifier "puVar50") (, ",") (pointer_expression "*pbVar25" (* "*") (identifier "pbVar25")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }" (else "else") (compound_statement "{\n      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);\n    }" ({ "{") (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153a18)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153a18)" (* "*") (cast_expression "(code **)(puVar54 + 0x153a18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153a18)" (( "(") (binary_expression "puVar54 + 0x153a18" (identifier "puVar54") (+ "+") (number_literal "0x153a18")) () ")"))))) () ")")) (argument_list "(puVar50,*pbVar25)" (( "(") (identifier "puVar50") (, ",") (pointer_expression "*pbVar25" (* "*") (identifier "pbVar25")) () ")"))) (; ";")) (} "}")))) (expression_statement "pbVar25 = pbVar25 + 1;" (assignment_expression "pbVar25 = pbVar25 + 1" (identifier "pbVar25") (= "=") (binary_expression "pbVar25 + 1" (identifier "pbVar25") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar25 != pbVar53)" (( "(") (binary_expression "pbVar25 != pbVar53" (identifier "pbVar25") (!= "!=") (identifier "pbVar53")) () ")")) (; ";"))) (labeled_statement "LAB_00255f78:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);" (statement_identifier "LAB_00255f78") (: ":") (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,0x7d)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153a18)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153a18)" (* "*") (cast_expression "(code **)(puVar54 + 0x153a18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153a18)" (( "(") (binary_expression "puVar54 + 0x153a18" (identifier "puVar54") (+ "+") (number_literal "0x153a18")) () ")"))))) () ")")) (argument_list "(puVar50,0x7d)" (( "(") (identifier "puVar50") (, ",") (number_literal "0x7d") () ")"))) (; ";"))) (labeled_statement "LAB_00255d60:\n  (**(code **)(puVar54 + 0x153a18))(puVar50,10);" (statement_identifier "LAB_00255d60") (: ":") (expression_statement "(**(code **)(puVar54 + 0x153a18))(puVar50,10);" (call_expression "(**(code **)(puVar54 + 0x153a18))(puVar50,10)" (parenthesized_expression "(**(code **)(puVar54 + 0x153a18))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x153a18)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x153a18)" (* "*") (cast_expression "(code **)(puVar54 + 0x153a18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x153a18)" (( "(") (binary_expression "puVar54 + 0x153a18" (identifier "puVar54") (+ "+") (number_literal "0x153a18")) () ")"))))) () ")")) (argument_list "(puVar50,10)" (( "(") (identifier "puVar50") (, ",") (number_literal "10") () ")"))) (; ";"))) (expression_statement "puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);" (assignment_expression "puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50)" (identifier "puVar9") (= "=") (cast_expression "(ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar54 + 0x1542fc))(puVar50)" (parenthesized_expression "(**(code **)(puVar54 + 0x1542fc))" (( "(") (pointer_expression "**(code **)(puVar54 + 0x1542fc)" (* "*") (pointer_expression "*(code **)(puVar54 + 0x1542fc)" (* "*") (cast_expression "(code **)(puVar54 + 0x1542fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar54 + 0x1542fc)" (( "(") (binary_expression "puVar54 + 0x1542fc" (identifier "puVar54") (+ "+") (number_literal "0x1542fc")) () ")"))))) () ")")) (argument_list "(puVar50)" (( "(") (identifier "puVar50") () ")"))))) (; ";")) (if_statement "if (puVar9 == (ushort *)0x0) goto LAB_00255d8c;" (if "if") (parenthesized_expression "(puVar9 == (ushort *)0x0)" (( "(") (binary_expression "puVar9 == (ushort *)0x0" (identifier "puVar9") (== "==") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00255d8c;" (goto "goto") (statement_identifier "LAB_00255d8c") (; ";"))) (goto_statement "goto LAB_00255c90;" (goto "goto") (statement_identifier "LAB_00255c90") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (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: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (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: (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: (pointer_declarator 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: (primitive_type) 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: (type_identifier) declarator: (pointer_declarator 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: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (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: (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)))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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)))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (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 (number_literal) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (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)))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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)))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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) (identifier) (number_literal) (identifier))))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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 (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (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 (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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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 (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: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) consequence: (break_statement)) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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 (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (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: (goto_statement label: (statement_identifier))) (while_statement condition: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))) body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (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: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (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) (identifier) (identifier) (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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) body: (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (identifier))) (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (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: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (break_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)) value: (identifier))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (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 (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))) (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) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)) right: (number_literal)) 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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))))) arguments: (argument_list)))) (return_statement (identifier)))) (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) (identifier) (identifier) (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (break_statement))) condition: (parenthesized_expression (true))))) (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)))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (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))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (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)))))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))))))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (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)))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (number_literal)))))) (expression_statement (assignment_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: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (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))))) (identifier)))))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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 (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (goto_statement label: (statement_identifier)))) (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 (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (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 (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) 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 (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) right: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))) 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)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (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))))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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) (identifier) (number_literal) (pointer_expression argument: (identifier)))))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (pointer_expression argument: (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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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) (identifier) (identifier) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (while_statement condition: (parenthesized_expression (true)) body: (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (number_literal))) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (goto_statement label: (statement_identifier))))) (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 (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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) (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))) (labeled_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: (identifier))))) consequence: (compound_statement (return_statement (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))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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))) (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))) (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))) (expression_statement (assignment_expression left: (identifier) right: (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)))))) (return_statement (identifier)))) (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 (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (return_statement (identifier)))) (expression_statement (assignment_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 (identifier) (identifier) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (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))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (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) (number_literal) (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: (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 (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (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) (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 (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (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) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier) (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) (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) (number_literal) (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 (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))))))) (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) (number_literal) (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 (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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) (identifier) (identifier) (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) (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 (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (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) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (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) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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))))))) (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))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))))))) (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) (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) (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) (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (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 (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (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) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (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) (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) (identifier) (identifier) (identifier)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier) (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 (identifier) (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: (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))) right: (parenthesized_expression (comma_expression left: (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)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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)) (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))))) (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) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))))))) (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 (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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) (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) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))) (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 (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) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (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: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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) (identifier) (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) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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))))))) (do_statement body: (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) (identifier))))) (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 (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (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) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (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 (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) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (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) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))))) (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (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) (number_literal)))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_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 (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier)))))) (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: (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: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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 (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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 (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (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)))) alternative: (else_clause (compound_statement (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 (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (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)))))))))))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (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)))))))))))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (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))))))))))))) (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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (identifier)) (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)))))) (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)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (while_statement condition: (parenthesized_expression (true)) body: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))))) (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier) (identifier))))) (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: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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))))) (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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) 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)))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (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))))) (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)))))) (return_statement (identifier)) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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 (identifier) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (identifier) (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 (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))))

/* WARNING: Removing unreachable block (ram,0x00255000) */
/* WARNING: Removing unreachable block (ram,0x00255118) */
/* WARNING: Removing unreachable block (ram,0x00254944) */
/* WARNING: Removing unreachable block (ram,0x0025496c) */
/* WARNING: Removing unreachable block (ram,0x00254a08) */
/* WARNING: Removing unreachable block (ram,0x00254978) */
/* WARNING: Removing unreachable block (ram,0x00254a30) */
/* WARNING: Removing unreachable block (ram,0x0025497c) */
/* WARNING: Removing unreachable block (ram,0x00254990) */
/* WARNING: Removing unreachable block (ram,0x0025505c) */
/* WARNING: Removing unreachable block (ram,0x002549bc) */
/* WARNING: Removing unreachable block (ram,0x002549f0) */
/* WARNING: Removing unreachable block (ram,0x00254a3c) */
/* WARNING: Removing unreachable block (ram,0x00254a40) */
/* WARNING: Removing unreachable block (ram,0x00254ac0) */

int MASKED(ushort *param_1,ushort *param_2)

{
  bool bVar1;
  ushort uVar2;
  undefined8 uVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined *puVar6;
  undefined *puVar7;
  ushort *puVar8;
  ushort *puVar9;
  int iVar10;
  ushort *puVar11;
  int iVar12;
  uint uVar13;
  ushort *puVar14;
  double *pdVar15;
  ushort *puVar16;
  undefined4 *puVar17;
  int *piVar18;
  int iVar19;
  int iVar20;
  int iVar21;
  int iVar22;
  undefined4 uVar23;
  int iVar24;
  byte *pbVar25;
  int *piVar26;
  undefined1 *puVar27;
  undefined1 *puVar28;
  undefined1 *puVar29;
  int iVar30;
  int iVar31;
  int iVar32;
  ushort *puVar33;
  int iVar34;
  undefined *puVar35;
  undefined1 uVar37;
  uint uVar36;
  ushort *puVar38;
  int iVar39;
  int iVar40;
  int iVar41;
  int iVar42;
  int iVar43;
  undefined1 uVar44;
  undefined1 uVar45;
  int iVar46;
  int iVar47;
  undefined4 uVar48;
  int iVar49;
  undefined4 unaff_s3;
  ushort *unaff_s4;
  ushort *puVar50;
  ushort *unaff_s5;
  int iVar51;
  undefined1 uVar52;
  ushort *unaff_s6;
  ushort *unaff_s7;
  byte *pbVar53;
  undefined *puVar54;
  ushort *unaff_s8;
  code *pcVar55;
  double dVar56;
  double dVar57;
  float fVar59;
  double dVar58;
  undefined2 uVar60;
  double dVar61;
  float fVar62;
  double dVar63;
  double dVar64;
  double in_f20_21;
  double dVar65;
  double in_f22_23;
  double in_f24_25;
  double dVar66;
  double dVar67;
  double dVar68;
  undefined8 uVar69;
  ushort *puStack_5188;
  undefined4 uStack_5150;
  undefined4 uStack_514c;
  undefined1 auStack_5144 [4096];
  undefined1 auStack_4144 [4096];
  int iStack_3144;
  ushort *puStack_3140;
  ushort *puStack_313c;
  undefined8 uStack_3138;
  ushort *puStack_3130;
  ushort *puStack_312c;
  ushort *puStack_3128;
  ushort *puStack_3124;
  ushort *puStack_3120;
  code *pcStack_311c;
  double dStack_3118;
  double dStack_3110;
  double dStack_3108;
  undefined8 local_30d8;
  undefined *local_30d0;
  ushort *local_30cc;
  ushort *local_30c8;
  int local_309c;
  undefined4 local_3078;
  undefined4 local_3074;
  ushort local_3070 [22];
  ushort auStack_3044 [2048];
  undefined1 local_2044 [4096];
  ushort local_1044 [2048];
  int local_44;
  
  puVar54 = PTR___stack_chk_guard_003a9230;
  uVar69 = CONCAT44(param_2,unaff_s3);
  local_44 = *(int *)PTR___stack_chk_guard_003a9230;
  if (param_1 == (ushort *)0x0) {
    iVar10 = (*(code *)PTR___assert_fail_003a9608)
                       (PTR_LAB_003a88e0 + 0xd78,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc2,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);
    return iVar10;
  }
  if (*(int *)(param_1 + 0x190a) != -0x54535255) {
    iVar10 = (*(code *)PTR___assert_fail_003a9608)
                       (PTR_LAB_003a88e0 + 0xda0,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,0xc3,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);
    return iVar10;
  }
  if (*(int *)(param_1 + 0x1908) != 0) {
    local_30d8._4_4_ = param_1 + 0x1108;
    local_30d8._0_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x62ac);
    (*(code *)PTR_LogMagickEvent_003a91e0)
              (0x8000,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,
               PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4,0xc5);
  }
  if (param_2 == (ushort *)0x0) {
    iVar10 = (*(code *)PTR___assert_fail_003a9608)
                       (PTR_LAB_003a88e0 + 0x1cac,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,199,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);
    return iVar10;
  }
  if (*(int *)(param_2 + 0xe) != -0x54535255) {
    iVar10 = (*(code *)PTR___assert_fail_003a9608)
                       (PTR_LAB_003a88e0 + 0x294c,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc,200,
                        PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7294);
    return iVar10;
  }
  puVar8 = (ushort *)(*(code *)PTR_AcquireImage_003a960c)(param_1,param_2);
  puVar38 = (ushort *)0x2;
  puVar50 = puVar8;
  local_309c = (*(code *)PTR_OpenBlob_003a924c)(param_1,puVar8,2,param_2);
  if (local_309c == 0) {
    (*(code *)PTR_DestroyImageList_003a9510)(puVar8);
    iVar10 = 0;
  }
  else {
    puVar38 = (ushort *)0xffa;
    (*(code *)PTR_CopyMagickString_003a983c)(auStack_3044,puVar8 + 0x1a0);
    puVar50 = auStack_3044;
    (*(code *)PTR_AppendImageFormat_003a8fa8)(PTR_s_courses_003a88ec + -0x50b8);
    unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
    puVar5 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8;
    puVar4 = PTR_LAB_003a88e0;
    uVar69 = CONCAT44(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8,PTR_LAB_003a88e0);
    if (unaff_s8 == (ushort *)0xffffffff) {
      (*(code *)PTR_DestroyImage_003a8f4c)(puVar8);
      iVar10 = 0;
      param_1 = auStack_3044;
      uVar69 = CONCAT44(param_2,unaff_s3);
    }
    else {
      unaff_s5 = local_1044;
      puVar38 = (ushort *)0x1000;
      local_2044[0] = 0;
      unaff_s4 = (ushort *)((int)unaff_s8 << 1);
      (*(code *)PTR_memset_003a96d4)(unaff_s5,0);
      local_3074 = 0;
      local_3078 = 0;
      puVar9 = (ushort *)(*(code *)PTR___ctype_b_loc_003a9434)();
      in_f24_25 = *(double *)(puVar5 + -0x5b00);
      in_f22_23 = *(double *)(puVar4 + 0x1418);
      in_f20_21 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);
      unaff_s7 = local_3070;
      do {
        puVar6 = PTR_s_pixels_3_def_____currentfile_byt_003a894c;
        (*(code *)PTR_SetGeometryInfo_003a9970)(local_3070);
        unaff_s6 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);
        iVar10 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);
        iVar30 = *(int *)puVar9;
        puVar8[0x10] = 0;
        puVar8[0x11] = 8;
        puVar50 = (ushort *)(iVar30 + (int)unaff_s4);
        puVar8[4] = 0;
        puVar8[5] = 0x10;
        uVar2 = *puVar50;
        puVar11 = unaff_s8;
LAB_0025399c:
        unaff_s4 = puVar50;
        if ((uVar2 & 0x80) != 0) {
          do {
            unaff_s4 = puVar50;
            if (puVar11 == (ushort *)&DAT_0000003a) break;
            if (puVar11 == (ushort *)0x7b) {
              puVar11 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);
              unaff_s8 = puVar11;
              if (puVar11 == (ushort *)0x0) {
LAB_00254658:
                (*(code *)PTR_DestroyString_003a9074)(unaff_s6);
                uVar48 = 0x10e;
                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
                local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);
                local_30d8._0_4_ = (ushort *)0x190;
                goto LAB_002546ac;
              }
              uVar13 = 0x1000;
              puVar50 = (ushort *)0x5c;
LAB_0025451c:
              uVar69 = CONCAT44(puVar11,uVar13);
              unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
              if (unaff_s7 == (ushort *)0x5c) goto LAB_00254578;
              while ((puVar7 = PTR_SetImageProperty_003a9534, unaff_s7 != (ushort *)0xffffffff &&
                     (iVar30 = (int)unaff_s8 - (int)puVar11, unaff_s7 != (ushort *)0x7d))) {
                while( true ) {
                  puVar35 = PTR_ReadBlobByte_003a97f0;
                  puVar7 = PTR_ResizeQuantumMemory_003a9420;
                  if (uVar13 <= iVar30 + 1U) {
                    uVar13 = uVar13 * 2;
                    *(byte *)unaff_s8 = 0;
                    puVar11 = (ushort *)(*(code *)puVar7)(puVar11,uVar13 + 0x1000,1);
                    uVar69 = CONCAT44(puVar11,uVar13);
                    unaff_s4 = puVar50;
                    if (puVar11 == (ushort *)0x0) goto LAB_00254658;
                    iVar30 = (*(code *)PTR_strlen_003a9338)(puVar11);
                    unaff_s8 = (ushort *)((byte *)((int)puVar11 + iVar30) + 1);
                    *(byte *)((int)puVar11 + iVar30) = (byte)unaff_s7;
                    goto LAB_0025451c;
                  }
                  *(byte *)unaff_s8 = (byte)unaff_s7;
                  unaff_s8 = (ushort *)((int)unaff_s8 + 1);
                  unaff_s7 = (ushort *)(*(code *)puVar35)(puVar8);
                  if (unaff_s7 != (ushort *)0x5c) break;
LAB_00254578:
                  unaff_s7 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
                  iVar30 = (int)unaff_s8 - (int)puVar11;
                }
              }
              puVar35 = PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1928;
              *(byte *)unaff_s8 = 0;
              puVar38 = puVar11;
              (*(code *)puVar7)(puVar8,puVar35,puVar11,param_2);
              (*(code *)PTR_DestroyString_003a9074)(puVar11);
              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
            }
            else if ((uVar2 & 0x800) == 0) {
              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
            }
            else {
              puVar50 = unaff_s5;
              if (puVar11 == (ushort *)0x3d) {
                iVar12 = 0x7a;
              }
              else {
                uVar69 = 0xffffffff0000003d;
                do {
                  if ((uint)((int)puVar50 - (int)unaff_s5) < 0xfff) {
                    *(byte *)puVar50 = (byte)puVar11;
                    puVar50 = (ushort *)((int)puVar50 + 1);
                  }
                  puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
                  if (puVar11 == (ushort *)0xffffffff) {
                    iVar30 = *(int *)puVar9;
                    iVar12 = -2;
                    uVar69 = 0xffffffff0000003d;
                    goto LAB_00253a18;
                  }
                } while (puVar11 != (ushort *)0x3d);
                iVar30 = *(int *)puVar9;
                iVar12 = 0x7a;
              }
LAB_00253a18:
              uVar13 = (uint)((ulonglong)uVar69 >> 0x20);
              uVar36 = (uint)uVar69;
              *(byte *)puVar50 = 0;
              uVar2 = *(ushort *)(iVar30 + iVar12);
              while ((uVar2 & 0x20) != 0) {
                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
                uVar2 = *(ushort *)(*(int *)puVar9 + (int)puVar11 * 2);
              }
              unaff_s7 = unaff_s6;
              if (puVar11 == (ushort *)0x3d) {
                puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
                if ((puVar11 == (ushort *)0x7d) || (uVar13 = 0xfff, puVar11 == (ushort *)0xffffffff)
                   ) {
                  uVar69 = CONCAT44(uVar13,uVar36);
                }
                else {
                  uVar36 = 0x7d;
                  do {
                    iVar30 = (int)unaff_s7 - (int)unaff_s6;
                    unaff_s4 = puVar50;
                    while( true ) {
                      puVar50 = unaff_s7;
                      puVar7 = PTR_ResizeQuantumMemory_003a9420;
                      if (uVar13 <= iVar30 + 1U) {
                        uVar13 = uVar13 * 2;
                        *(byte *)puVar50 = 0;
                        unaff_s6 = (ushort *)(*(code *)puVar7)(unaff_s6,uVar13 + 0x1000,1);
                        unaff_s7 = puVar50;
                        if (unaff_s6 == (ushort *)0x0) goto LAB_00254848;
                        iVar30 = (*(code *)PTR_strlen_003a9338)(unaff_s6);
                        puVar50 = (ushort *)((int)unaff_s6 + iVar30);
                      }
                      puVar7 = PTR_ReadBlobByte_003a97f0;
                      uVar3 = CONCAT44(uVar13,0x7d);
                      uVar69 = CONCAT44(uVar13,0x7d);
                      *(byte *)puVar50 = (byte)puVar11;
                      unaff_s7 = (ushort *)((int)puVar50 + 1);
                      puVar11 = (ushort *)(*(code *)puVar7)(puVar8);
                      if (puVar11 != (ushort *)0x5c) break;
                      puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
                      puVar7 = PTR_ReadBlobByte_003a97f0;
                      if (puVar11 == (ushort *)0x7d) {
                        *(byte *)((int)puVar50 + 1) = 0x7d;
                        unaff_s7 = puVar50 + 1;
                        puVar11 = (ushort *)(*(code *)puVar7)(puVar8);
                        break;
                      }
                      if (*(byte *)unaff_s6 != 0x7b) goto LAB_002547c4;
                      iVar30 = (int)unaff_s7 - (int)unaff_s6;
                      unaff_s4 = puVar50;
                      uVar69 = uVar3;
                      if (puVar11 == (ushort *)0xffffffff) goto joined_r0x00254fe4;
                    }
                    if (*(byte *)unaff_s6 == 0x7b) goto LAB_002547e0;
LAB_002547c4:
                    if ((*(ushort *)(*(int *)puVar9 + (int)puVar11 * 2) & 0x20) != 0)
                    goto LAB_00253a68;
LAB_002547e0:
                    uVar69 = uVar3;
                  } while ((puVar11 != (ushort *)0x7d) && (puVar11 != (ushort *)0xffffffff));
                }
joined_r0x00254fe4:
                unaff_s4 = puVar50;
                if (unaff_s6 == (ushort *)0x0) {
LAB_00254848:
                  uVar48 = 0x14c;
                  goto LAB_00254850;
                }
              }
LAB_00253a68:
              *(byte *)unaff_s7 = 0;
              if (*(byte *)unaff_s6 == 0x7b) {
                uVar48 = (*(code *)PTR_strlen_003a9338)(unaff_s6);
                (*(code *)PTR_CopyMagickString_003a983c)
                          (unaff_s6,(byte *)((int)unaff_s6 + 1),uVar48);
              }
              uVar13 = local_1044[0]._0_1_ - 0x41 & 0xff;
              if (uVar13 < 0x37) {
                    /* WARNING: Could not emulate address calculation at 0x00253a98 */
                    /* WARNING: Treating indirect jump as call */
                iVar10 = (*(code *)(&_gp_1 + *(int *)(puVar6 + uVar13 * 4 + -0x7380)))();
                return iVar10;
              }
              puVar38 = unaff_s6;
              (*(code *)PTR_SetImageProperty_003a9534)(puVar8,unaff_s5,unaff_s6,param_2);
            }
            iVar30 = *(int *)puVar9;
            uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);
            if ((uVar2 & 0x20) == 0) goto LAB_0025399c;
            do {
              puVar11 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
              iVar30 = *(int *)puVar9;
              uVar2 = *(ushort *)(iVar30 + (int)puVar11 * 2);
            } while ((uVar2 & 0x20) != 0);
            unaff_s4 = puVar50;
            if ((uVar2 & 0x80) == 0) break;
          } while( true );
        }
        (*(code *)PTR_DestroyString_003a9074)(unaff_s6);
        (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
        iVar30 = (*(code *)PTR_LocaleCompare_003a9110)
                           (local_2044,PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7474);
        unaff_s8 = puVar11;
        if ((((((iVar30 != 0) || (*(int *)puVar8 == 0)) || (*(int *)(puVar8 + 4) == 0)) ||
             ((*(int *)(puVar8 + 0xc) == 0 || (*(int *)(puVar8 + 0xe) == 0)))) ||
            ((0x40 < *(uint *)(puVar8 + 0x160) ||
             ((0x38 < *(uint *)(puVar8 + 0x162) ||
              (0x3f < *(uint *)(puVar8 + 0x160) + *(uint *)(puVar8 + 0x162))))))) ||
           (0x3f < *(int *)(puVar8 + 0x10) - 1U)) {
          uVar48 = 0x31d;
          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -400);
          local_30d8._0_4_ = (ushort *)&DAT_000001a9;
LAB_002546ac:
          local_30cc = param_1 + 0x1108;
          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,uVar48);
          (*(code *)PTR_CloseBlob_003a9688)(puVar8);
          (*(code *)PTR_DestroyImageList_003a9510)(puVar8);
          iVar10 = 0;
          param_1 = puVar9;
          goto LAB_002546dc;
        }
        iVar30 = (*(code *)PTR_GetMagickSignature_003a96ec)(0);
        if (iVar10 != iVar30) {
          uVar48 = 0x323;
          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7460);
          local_30d8._0_4_ = (ushort *)&DAT_000001bd;
          goto LAB_002546ac;
        }
        if (*(int *)(puVar8 + 0x102) != 0) {
          unaff_s6 = (ushort *)0x0;
          puVar14 = (ushort *)0x1000;
          puVar50 = (ushort *)(*(code *)PTR_AcquireString_003a9814)(0);
          *(ushort **)(puVar8 + 0x104) = puVar50;
          do {
            *(byte *)puVar50 = 0;
            puVar16 = puVar50;
            if (puVar14 <= unaff_s6 + 0x800) {
              puVar14 = (ushort *)((int)puVar14 * 2);
              uVar69 = CONCAT44(puVar14,0xffffffff);
              puVar38 = (ushort *)0x1;
              iVar10 = (*(code *)PTR_ResizeQuantumMemory_003a9420)
                                 (*(undefined4 *)(puVar8 + 0x104),puVar14 + 0x800);
              *(int *)(puVar8 + 0x104) = iVar10;
              if (iVar10 == 0) {
                uVar48 = 0x341;
                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
                local_30d8._4_4_ =
                     (ushort *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x18cc);
                local_30d8._0_4_ = (ushort *)&DAT_000001a9;
                goto LAB_002546ac;
              }
              puVar16 = (ushort *)(iVar10 + (int)unaff_s6);
            }
            iVar10 = (*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
            uVar69 = CONCAT44(puVar14,0xffffffff);
            if (iVar10 == -1) break;
            puVar50 = (ushort *)((int)puVar16 + 1);
            *(byte *)puVar16 = (byte)iVar10;
            unaff_s6 = (ushort *)((int)unaff_s6 + 1);
            unaff_s4 = puVar16;
            uVar69 = CONCAT44(puVar14,0xffffffff);
          } while (iVar10 != 0);
        }
        puVar50 = (ushort *)0x0;
        unaff_s4 = (ushort *)(*(code *)PTR_GetImageQuantumDepth_003a91e8)(puVar8);
        if (*(int *)puVar8 == 2) {
          iVar10 = *(int *)(puVar8 + 0x12);
          uVar69 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);
          uVar13 = (uint)((int)unaff_s4 * 3) >> 3;
          uVar36 = uVar13 * iVar10;
          if ((int)((ulonglong)uVar69 >> 0x20) == 0) {
            uVar36 = (uint)((uint)uVar69 < uVar36);
            uVar69 = CONCAT44(uVar13,uVar36);
            if (uVar36 != 0) {
              uVar48 = 0x37d;
              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);
              local_30d8._0_4_ = (ushort *)&DAT_000001a9;
              goto LAB_002546ac;
            }
          }
          puVar50 = (ushort *)0x58;
          iVar10 = (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12) + 1);
          *(int *)(puVar8 + 0x14) = iVar10;
          if (iVar10 == 0) {
            uVar48 = 0x381;
LAB_00254850:
            uVar69 = CONCAT44(uVar13,uVar36);
            local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
            puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
            puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
            local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x16f8);
            local_30d8._0_4_ = (ushort *)0x190;
            unaff_s8 = puVar11;
            goto LAB_002546ac;
          }
          uVar69 = CONCAT44(uVar13,uVar36);
          if (*(int *)(puVar8 + 0x12) != 0) {
            puVar14 = (ushort *)
                      (*(code *)PTR_AcquireQuantumMemory_003a950c)(*(int *)(puVar8 + 0x12),uVar13);
            if (puVar14 == (ushort *)0x0) {
              uVar48 = 0x38a;
              uVar36 = 0;
              goto LAB_00254850;
            }
            puVar50 = (ushort *)(uVar13 * *(int *)(puVar8 + 0x12));
            puVar38 = puVar14;
            iVar10 = (*(code *)PTR_ReadBlob_003a8dac)(puVar8);
            iVar30 = *(int *)(puVar8 + 0x12);
            iVar12 = iVar30 * uVar13;
            uVar69 = CONCAT44(iVar12,puVar14);
            if (iVar12 != iVar10) {
              (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);
              uVar48 = 0x390;
              local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
              puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
              puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
              local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + 0x4a0);
              local_30d8._0_4_ = (ushort *)&DAT_000001a9;
              goto LAB_002546ac;
            }
            if (unaff_s4 == (ushort *)0x10) {
              if (0 < iVar30) {
                puVar16 = puVar14;
                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);
                do {
                  puVar33 = puVar16 + 3;
                  *pdVar15 = (double)*puVar16;
                  pdVar15[1] = (double)puVar16[1];
                  puVar38 = (ushort *)((uint)*(byte *)(puVar16 + 2) << 8);
                  puVar50 = (ushort *)(uint)puVar16[2];
                  pdVar15[2] = (double)(int)puVar50;
                  puVar16 = puVar33;
                  pdVar15 = pdVar15 + 0xb;
                } while (puVar33 != puVar14 + iVar30 * 3);
              }
            }
            else if (unaff_s4 == (ushort *)0x20) {
              if (0 < iVar30) {
                dVar67 = *(double *)(puVar4 + 0x1418);
                dVar66 = *(double *)(puVar5 + -0x5b00);
                puVar16 = puVar14;
                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);
                do {
                  puVar38 = puVar16;
                  dVar68 = (double)*(int *)puVar38;
                  if (*(int *)puVar38 < 0) {
                    dVar68 = dVar68 + dVar67;
                  }
                  *pdVar15 = (double)(float)(dVar68 / in_f24_25);
                  dVar68 = (double)*(int *)(puVar38 + 2);
                  if (*(int *)(puVar38 + 2) < 0) {
                    dVar68 = dVar68 + dVar67;
                  }
                  pdVar15[1] = (double)(float)(dVar68 / dVar66);
                  puVar50 = *(ushort **)(puVar38 + 4);
                  dVar68 = (double)(int)puVar50;
                  if ((int)puVar50 < 0) {
                    dVar68 = dVar68 + in_f22_23;
                  }
                  pdVar15[2] = (double)(float)(dVar68 / dVar66);
                  puVar16 = puVar38 + 6;
                  pdVar15 = pdVar15 + 0xb;
                } while (puVar38 + 6 != puVar14 + iVar30 * 6);
              }
            }
            else {
              if (unaff_s4 != (ushort *)&DAT_00000008) {
                (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);
                uVar48 = 0x398;
                local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
                puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
                puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
                local_30d8._4_4_ = (ushort *)(PTR_s_t_to_left_003a88e4 + -0x5aa8);
                local_30d8._0_4_ = (ushort *)&DAT_000001a9;
                uVar69 = CONCAT44(iVar12,puVar14);
                goto LAB_002546ac;
              }
              puVar50 = (ushort *)(iVar30 * 2);
              if (0 < iVar30) {
                pdVar15 = (double *)(*(int *)(puVar8 + 0x14) + 0x28);
                puVar16 = puVar14;
                do {
                  puVar33 = (ushort *)((int)puVar16 + 3);
                  *pdVar15 = (double)(float)((double)*(byte *)puVar16 * in_f20_21);
                  pdVar15[1] = (double)(float)((double)(byte)*puVar16 * in_f20_21);
                  puVar50 = (ushort *)(uint)*(byte *)(puVar16 + 1);
                  pdVar15[2] = (double)(float)((double)(int)puVar50 * in_f20_21);
                  pdVar15 = pdVar15 + 0xb;
                  puVar16 = puVar33;
                } while ((ushort *)((int)puVar14 + iVar30 * 3) != puVar33);
              }
            }
            (*(code *)PTR_RelinquishMagickMemory_003a8fc0)(puVar14);
            uVar69 = CONCAT44(iVar12,puVar14);
          }
        }
        uVar48 = (undefined4)((ulonglong)uVar69 >> 0x20);
        uVar23 = (undefined4)uVar69;
        if (((*(int *)(param_1 + 0xee) != 0) && (*(int *)(param_1 + 0x16) != 0)) &&
           ((*(int *)(param_1 + 0x16) + *(int *)(param_1 + 0x14)) - 1U <= *(uint *)(puVar8 + 0x136))
           ) {
          (*(code *)PTR_CloseBlob_003a9688)(puVar8);
          if (local_309c != 0) goto LAB_002548a8;
          goto LAB_00253dbc;
        }
        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(10);
        if (iVar10 == 0) {
LAB_002550a8:
          uVar48 = 0x3db;
          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
          local_30d8._4_4_ = (ushort *)(PTR_LAB_003a88e0 + 0x1284);
          local_30d8._0_4_ = (ushort *)0x1d1;
          goto LAB_002546ac;
        }
        iVar10 = (*(code *)PTR_AcquireMagickResource_003a981c)(4);
        if (iVar10 == 0) goto LAB_002550a8;
        puVar38 = (ushort *)0x1;
        puVar50 = auStack_3044;
        local_30d8._0_4_ = param_2;
        iVar10 = (*(code *)PTR_PersistPixelCache_003a8dc0)(puVar8,auStack_3044,1,&local_3078);
        if (iVar10 == 0) {
          (*(code *)PTR_SetImageExtent_003a94ac)
                    (puVar8,*(undefined4 *)(puVar8 + 0xc),*(undefined4 *)(puVar8 + 0xe),param_2);
          uVar48 = 0x3e3;
          local_30d0 = PTR_LAB_003a88e0 + 0x3e28;
          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
          local_30d8._4_4_ = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x7450);
          local_30d8._0_4_ = (ushort *)&DAT_000001bd;
          puVar9 = param_2;
          goto LAB_002546ac;
        }
        iVar10 = (*(code *)PTR_EOFBlob_003a9748)(puVar8);
        if (iVar10 != 0) {
          puVar17 = (undefined4 *)(*(code *)PTR___errno_location_003a99b0)();
          puVar9 = (ushort *)(*(code *)PTR_GetExceptionMessage_003a93ec)(*puVar17);
          local_30cc = puVar8 + 0x1a0;
          local_30d0 = PTR_LAB_003a88e0 + 0xe78;
          puVar38 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x72a4);
          puVar50 = (ushort *)(PTR_s_pixels_3_def_____currentfile_byt_003a894c + -0x74dc);
          local_30d8._4_4_ = (ushort *)(PTR_s_courses_003a88ec + -0x17c);
          local_30d8._0_4_ = (ushort *)&DAT_000001a9;
          local_30c8 = puVar9;
          (*(code *)PTR_ThrowMagickException_003a8f20)(param_2,puVar50,puVar38,1000);
          (*(code *)PTR_DestroyString_003a9074)(puVar9);
          (*(code *)PTR_CloseBlob_003a9688)(puVar8);
LAB_002548a8:
          iVar10 = (*(code *)PTR_GetFirstImageInList_003a944c)(puVar8);
          param_1 = puVar9;
          unaff_s8 = puVar11;
          uVar69 = CONCAT44(uVar48,uVar23);
          goto LAB_002546dc;
        }
        uVar48 = 0xffffffff;
        uVar69 = CONCAT44(0xffffffff,uVar23);
        while( true ) {
          unaff_s8 = (ushort *)(*(code *)PTR_ReadBlobByte_003a97f0)(puVar8);
          unaff_s4 = (ushort *)((int)unaff_s8 * 2);
          if ((*(ushort *)(*(int *)puVar9 + (int)unaff_s4) & 0x80) != 0) break;
          bVar1 = unaff_s8 == (ushort *)0xffffffff;
          unaff_s8 = puVar11;
          if (bVar1) goto LAB_0025489c;
        }
        if (unaff_s8 == (ushort *)0xffffffff) {
LAB_0025489c:
          (*(code *)PTR_CloseBlob_003a9688)(puVar8);
          puVar11 = unaff_s8;
          goto LAB_002548a8;
        }
        puVar50 = puVar8;
        puVar38 = param_2;
        (*(code *)PTR_AcquireNextImage_003a8f90)(param_1);
        iVar10 = (*(code *)PTR_GetNextImageInList_003a9470)(puVar8);
        if (iVar10 == 0) break;
        puVar8 = (ushort *)(*(code *)PTR_SyncNextImageInList_003a9408)(puVar8);
        uVar69 = (*(code *)PTR_TellBlob_003a931c)(puVar8);
        puVar38 = (ushort *)((ulonglong)uVar69 >> 0x20);
        local_30d8 = (*(code *)PTR_GetBlobSize_003a94b8)(puVar8);
        puVar50 = (ushort *)(PTR_s_courses_003a88ec + -0x168);
        local_309c = (*(code *)PTR_SetImageProgress_003a8cb4)(puVar8,puVar50,puVar38,(int)uVar69);
      } while (local_309c != 0);
      (*(code *)PTR_CloseBlob_003a9688)(puVar8);
      puVar11 = unaff_s8;
LAB_00253dbc:
      iVar10 = (*(code *)PTR_DestroyImageList_003a9510)(puVar8);
      param_1 = puVar9;
      unaff_s8 = puVar11;
    }
  }
LAB_002546dc:
  if (local_44 == *(int *)puVar54) {
    return iVar10;
  }
  pcVar55 = FUN_002555c4;
  iVar10 = local_44;
  puVar54 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  piVar18 = *(int **)(puVar54 + 0x153c6c);
  iStack_3144 = *piVar18;
  puStack_3140 = puVar8;
  puStack_313c = param_1;
  puStack_3130 = unaff_s4;
  puStack_312c = unaff_s5;
  puStack_3128 = unaff_s6;
  puStack_3124 = unaff_s7;
  puStack_3120 = unaff_s8;
  pcStack_311c = pcVar55;
  dStack_3118 = in_f20_21;
  dStack_3110 = in_f22_23;
  dStack_3108 = in_f24_25;
  uStack_3138 = uVar69;
  if (iVar10 == 0) {
    iVar10 = (**(code **)(puVar54 + 0x154044))
                       (*(int *)(puVar54 + 0x15331c) + 0xd78,*(int *)(puVar54 + 0x153388) + -0x74dc,
                        0x483,*(int *)(puVar54 + 0x153388) + -0x7274);
    return iVar10;
  }
  puVar8 = *(ushort **)(puVar54 + 0x153388);
  if (*(int *)(iVar10 + 0x3214) != -0x54535255) {
    iVar10 = (**(code **)(puVar54 + 0x154044))
                       (*(int *)(puVar54 + 0x15331c) + 0xda0,*(int *)(puVar54 + 0x153388) + -0x74dc,
                        0x484,puVar8 + -0x393a);
    return iVar10;
  }
  if (puVar50 != (ushort *)0x0) {
    if (*(int *)(puVar50 + 0x19b6) != -0x54535255) {
      iVar10 = (**(code **)(puVar54 + 0x154044))
                         (*(int *)(puVar54 + 0x153324) + -0x3784,
                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x486,puVar8 + -0x393a);
      return iVar10;
    }
    if (*(int *)(puVar50 + 0x19a8) != 0) {
      (**(code **)(puVar54 + 0x153c1c))
                (0x8000,*(int *)(puVar54 + 0x153388) + -0x74dc,
                 *(int *)(puVar54 + 0x153388) + -0x7284,0x488,*(int *)(puVar54 + 0x153320) + -0x62ac
                 ,puVar50 + 0x1a0);
    }
    if (puVar38 == (ushort *)0x0) {
      iVar10 = (**(code **)(puVar54 + 0x154044))
                         (*(int *)(puVar54 + 0x15331c) + 0x1cac,
                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x489,
                          *(int *)(puVar54 + 0x153388) + -0x7274);
      return iVar10;
    }
    if (*(int *)(puVar38 + 0xe) != -0x54535255) {
      iVar10 = (**(code **)(puVar54 + 0x154044))
                         (*(int *)(puVar54 + 0x15331c) + 0x294c,
                          *(int *)(puVar54 + 0x153388) + -0x74dc,0x48a,
                          *(int *)(puVar54 + 0x153388) + -0x7274);
      return iVar10;
    }
    puVar8 = puVar38;
    iVar30 = (**(code **)(puVar54 + 0x153c88))(iVar10,puVar50,4,puVar38);
    if (iVar30 == 0) {
LAB_0025569c:
      iVar46 = 0;
    }
    else {
      iVar47 = *(int *)(puVar54 + 0x15331c);
      iVar49 = *(int *)(puVar54 + 0x15331c);
      iVar51 = *(int *)(puVar54 + 0x15331c);
      (**(code **)(puVar54 + 0x154278))(auStack_4144,puVar50 + 0x1a0,0xffa);
      iVar30 = *(int *)(puVar54 + 0x153388);
      iVar12 = *(int *)(puVar54 + 0x153388);
      iVar19 = *(int *)(puVar54 + 0x153388);
      (**(code **)(puVar54 + 0x1539e4))(*(int *)(puVar54 + 0x153328) + -0x50b8,auStack_4144);
      uStack_514c = 0;
      uStack_5150 = 0;
      (**(code **)(puVar54 + 0x153cb4))(puVar50);
      dVar68 = *(double *)(iVar47 + 0x1418);
      iVar20 = *(int *)(puVar54 + 0x153388);
      dVar67 = *(double *)(iVar49 + 0x1400);
      iVar31 = *(int *)(puVar54 + 0x153388);
      dVar66 = *(double *)(iVar51 + 0x1410);
      iVar21 = *(int *)(puVar54 + 0x153388);
      puStack_5188 = (ushort *)0x0;
      iVar22 = *(int *)(puVar54 + 0x153388);
      do {
        (**(code **)(puVar54 + 0x154260))(puVar50,*(undefined4 *)puVar50,puVar38);
        iVar46 = (**(code **)(puVar54 + 0x153c24))(puVar50,1);
        if (*(int *)puVar50 == 2) {
          uVar13 = *(uint *)(puVar50 + 0x10);
          if (uVar13 == 0) {
            uVar13 = 1;
          }
          else {
            uVar36 = 0;
            if (uVar13 < 0x41) {
              uVar36 = uVar13;
            }
            uVar13 = 2 << (uVar36 - 1 & 0x1f);
            if ((uVar36 - 1 & 0x20) != 0) {
              uVar13 = 0;
            }
          }
          if (uVar13 < *(uint *)(puVar50 + 0x12)) {
            (**(code **)(puVar54 + 0x154260))(puVar50,1,puVar38);
          }
        }
        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar30 + -0x7434);
        uVar48 = (**(code **)(puVar54 + 0x154128))(0);
        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar12 + -0x741c,uVar48);
        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        uVar48 = (**(code **)(puVar54 + 0x15379c))(5,*(undefined4 *)puVar50);
        dVar65 = (double)*(int *)(puVar50 + 0x12);
        if (*(int *)(puVar50 + 0x12) < 0) {
          dVar65 = dVar65 + dVar68;
        }
        uVar23 = (**(code **)(puVar54 + 0x15379c))(0x3a,*(undefined4 *)(puVar50 + 0x15e));
        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar19 + -0x7990,uVar48,dVar65,uVar23)
        ;
        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar31 + -0x7404);
        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        dVar65 = (double)*(int *)(puVar50 + 0x10);
        if (*(int *)(puVar50 + 0x10) < 0) {
          dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);
        }
        dVar56 = (double)*(int *)(puVar50 + 0xe);
        if (*(int *)(puVar50 + 0xe) < 0) {
          dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);
        }
        dVar57 = (double)*(int *)(puVar50 + 0xc);
        if (*(int *)(puVar50 + 0xc) < 0) {
          dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);
        }
        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar20 + -0x73d0);
        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        if (*(int *)(puVar50 + 0x150) != 0) {
          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x49);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7934,uVar48,dVar57,dVar56
                     ,dVar65);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        uVar48 = (**(code **)(puVar54 + 0x15379c))(9,*(undefined4 *)(puVar50 + 2));
        (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar21 + -0x7928,uVar48);
        (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        if (*(int *)(puVar50 + 0x12a) == 0) {
          pcVar55 = *(code **)(puVar54 + 0x15379c);
          if (*(int *)(puVar50 + 0x12e) == 0) goto LAB_00255a3c;
LAB_002565f0:
          uVar48 = (*pcVar55)(0x18);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7904,uVar48);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          if (*(int *)(puVar50 + 4) != 0) {
            pcVar55 = *(code **)(puVar54 + 0x15379c);
            goto LAB_0025663c;
          }
        }
        else {
          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x38);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -31000,uVar48);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          if (*(int *)(puVar50 + 0x12e) != 0) {
            pcVar55 = *(code **)(puVar54 + 0x15379c);
            goto LAB_002565f0;
          }
LAB_00255a3c:
          pcVar55 = *(code **)(puVar54 + 0x15379c);
          if (*(int *)(puVar50 + 4) != 0) {
LAB_0025663c:
            uVar48 = (*pcVar55)(0xe);
            dVar57 = (double)*(int *)(puVar50 + 6);
            if (*(int *)(puVar50 + 6) < 0) {
              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);
            }
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78f8,uVar48,dVar57);
            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          }
        }
        if (*(int *)(puVar50 + 0x100) != 0) {
          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x41);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78d8,uVar48);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        dVar65 = *(double *)(puVar50 + 0x10c);
        dVar61 = *(double *)(puVar50 + 0x110);
        if ((dVar65 != 0.0) || (dVar61 != 0.0)) {
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78cc);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          dVar57 = dVar65;
          dVar56 = dVar61;
        }
        iVar32 = *(int *)(puVar50 + 0x114);
        iVar34 = *(int *)(puVar50 + 0x116);
        iVar39 = *(int *)(puVar50 + 0x118);
        iVar24 = *(int *)(puVar50 + 0x11a);
        if ((iVar32 == 0) && (iVar34 == 0)) {
          if ((iVar39 != 0) || (iVar24 != 0)) {
            uVar48 = SUB84(dVar57,0);
            dVar57 = (double)CONCAT44(iVar24,uVar48);
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7898,iVar39,iVar24,
                       uVar48,dVar56);
            goto LAB_00255ed4;
          }
        }
        else {
          dVar56 = (double)iVar34;
          if (iVar34 < 0) {
            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);
          }
          dVar57 = (double)iVar32;
          if (iVar32 < 0) {
            dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);
          }
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x78b8,iVar39,dVar57,dVar56
                     ,(double)iVar39,(double)iVar24);
LAB_00255ed4:
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        iVar24 = *(int *)(puVar50 + 0x14e);
        if ((*(int *)(puVar50 + 0x14c) != 0) ||
           (pcVar55 = *(code **)(puVar54 + 0x153eac), iVar24 != 0)) {
          dVar57 = (double)CONCAT44(iVar24,SUB84(dVar57,0));
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7888,
                     *(int *)(puVar50 + 0x14c),iVar24);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          pcVar55 = *(code **)(puVar54 + 0x153eac);
        }
        iVar24 = (*pcVar55)(puVar50);
        iVar32 = *(int *)(puVar50 + 0x136);
        if (iVar24 == 0) {
          iVar24 = (**(code **)(puVar54 + 0x1536e8))(puVar50);
          if (iVar24 != 0) goto LAB_00255b3c;
          if (iVar32 != 0) {
            dVar57 = (double)iVar32;
            if (iVar32 < 0) {
              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);
            }
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77f4);
            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          }
          iVar24 = *(int *)(puVar50 + 0x13e);
          if (iVar24 != 0) {
            dVar57 = (double)iVar24;
            if (iVar24 < 0) {
              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);
            }
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77e4);
            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          }
          iVar24 = *(int *)(puVar50 + 0x138);
          if (iVar24 != 0) {
            dVar57 = (double)iVar24;
            if (iVar24 < 0) {
              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);
            }
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77d0);
            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          }
          if (*(int *)(puVar50 + 0x13c) != 100) {
            dVar57 = (double)*(int *)(puVar50 + 0x13c);
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x780c);
            (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          }
        }
        else {
LAB_00255b3c:
          dVar56 = (double)*(int *)(puVar50 + 0x13e);
          if (*(int *)(puVar50 + 0x13e) < 0) {
            dVar56 = dVar56 + *(double *)(iVar47 + 0x1418);
          }
          dVar65 = (double)*(int *)(puVar50 + 0x138);
          if (*(int *)(puVar50 + 0x138) < 0) {
            dVar65 = dVar65 + *(double *)(iVar47 + 0x1418);
          }
          if (iVar32 == 0) {
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7870);
            dVar57 = dVar56;
            dVar56 = dVar65;
          }
          else {
            dVar57 = (double)iVar32;
            if (iVar32 < 0) {
              dVar57 = dVar57 + *(double *)(iVar47 + 0x1418);
            }
            (**(code **)(puVar54 + 0x1537b8))
                      (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7838);
          }
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        if (*(int *)(puVar50 + 0x130) != 0) {
          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x21);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77c0,uVar48,dVar57);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        if (*(int *)(puVar50 + 0x134) != 0) {
          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x15);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77b4,uVar48);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        if (*(int *)(puVar50 + 0xfc) != 0) {
          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x23);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x77a8,uVar48);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        dVar65 = *(double *)(puVar50 + 200);
        if (dVar65 != 0.0) {
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7790);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          dVar57 = dVar65;
        }
        if (*(double *)(puVar50 + 0xf0) != 0.0) {
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7784);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          dVar56 = *(double *)(puVar50 + 0xf4);
          dVar57 = *(double *)(puVar50 + 0xf0);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7748);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        if (*(int *)(puVar50 + 8) != 0) {
          uVar48 = (**(code **)(puVar54 + 0x15379c))(0x36);
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7734,uVar48,dVar57,dVar56
                    );
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        if (*(int *)(puVar50 + 0xfe) == 0) {
LAB_00255c28:
          puVar8 = *(ushort **)(puVar50 + 0x102);
        }
        else {
          (**(code **)(puVar54 + 0x1538c8))(puVar50);
          iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);
          if (iVar24 == 0) goto LAB_00255c28;
          iVar32 = *(int *)(puVar54 + 0x153388);
          do {
            iVar34 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);
            if (iVar34 != 0) {
              (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar32 + -0x7724,iVar24);
              (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
            }
            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);
          } while (iVar24 != 0);
          puVar8 = *(ushort **)(puVar50 + 0x102);
        }
        if (puVar8 != (ushort *)0x0) {
          (**(code **)(puVar54 + 0x1537b8))
                    (auStack_5144,0x1000,*(int *)(puVar54 + 0x153388) + -0x7718);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
        }
        (**(code **)(puVar54 + 0x1536d0))(puVar50);
        puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);
        if (puVar9 != (ushort *)0x0) {
          iVar24 = *(int *)(puVar54 + 0x153388);
LAB_00255c90:
          puVar8 = puVar9;
          (**(code **)(puVar54 + 0x1537b8))(auStack_5144,0x1000,iVar24 + -0x7c80,puVar9);
          (**(code **)(puVar54 + 0x153fe4))(puVar50,auStack_5144);
          pbVar25 = (byte *)(**(code **)(puVar54 + 0x153e38))(puVar50,puVar9,puVar38);
          if (pbVar25 != (byte *)0x0) {
            iVar32 = (**(code **)(puVar54 + 0x153d74))(pbVar25);
            if (iVar32 != 0) {
              piVar26 = (int *)(**(code **)(puVar54 + 0x153e70))();
              iVar34 = 0;
              pbVar53 = pbVar25;
              do {
                iVar39 = iVar34 + 1;
                if ((*(ushort *)(*piVar26 + (uint)*pbVar53 * 2) & 0x20) != 0) {
                  if (iVar34 != iVar32) {
                    pbVar53 = pbVar25 + iVar32;
                    (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);
                    iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);
                    if (iVar34 != 0) goto LAB_00255f3c;
                    pcVar55 = *(code **)(puVar54 + 0x1543d0);
                    goto LAB_00255fc0;
                  }
                  break;
                }
                pbVar53 = pbVar53 + 1;
                iVar34 = iVar39;
              } while (iVar39 != iVar32);
              (**(code **)(puVar54 + 0x1543d0))(puVar50,iVar32,pbVar25);
              goto LAB_00255d60;
            }
            (**(code **)(puVar54 + 0x153a18))(puVar50,0x7b);
            iVar34 = (**(code **)(puVar54 + 0x1541c4))(pbVar25,0x7d);
            if (iVar34 == 0) {
              pcVar55 = *(code **)(puVar54 + 0x1543d0);
LAB_00255fc0:
              (*pcVar55)(puVar50,iVar32,pbVar25);
              (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);
              goto LAB_00255d60;
            }
            goto LAB_00255f78;
          }
          goto LAB_00255d60;
        }
LAB_00255d8c:
        (**(code **)(puVar54 + 0x153fe4))(puVar50,iVar22 + -0x770c);
        if (*(int *)(puVar50 + 0x102) != 0) {
          if (*(int *)(puVar50 + 0x104) != 0) {
            (**(code **)(puVar54 + 0x153fe4))(puVar50);
          }
          (**(code **)(puVar54 + 0x153a18))(puVar50,0);
        }
        if (*(int *)(puVar50 + 0xfe) == 0) {
          if (*(int *)puVar50 == 2) {
LAB_002561e8:
            uVar13 = (uint)(iVar46 * 3) >> 3;
            puVar27 = (undefined1 *)
                      (**(code **)(puVar54 + 0x153f48))(*(undefined4 *)(puVar50 + 0x12),uVar13);
            if (puVar27 == (undefined1 *)0x0) goto LAB_0025569c;
            iVar24 = *(int *)(puVar50 + 0x12);
            if (0 < iVar24) {
              iVar32 = 0;
              iVar43 = *(int *)(puVar54 + 0x153324);
              iVar34 = 0;
              dVar65 = *(double *)(iVar51 + 0x1410);
              iVar42 = *(int *)(puVar54 + 0x15331c);
              dVar57 = *(double *)(iVar43 + -0x5b00);
              iVar41 = *(int *)(puVar54 + 0x153324);
              iVar40 = *(int *)(puVar54 + 0x153324);
              iVar39 = *(int *)(puVar54 + 0x153324);
              dVar56 = *(double *)(iVar49 + 0x1400);
              fVar62 = *(float *)(iVar42 + 0x1a50);
              dVar63 = *(double *)(iVar41 + -0x5af8);
              dVar61 = *(double *)(iVar40 + -0x5af0);
              dVar64 = *(double *)(iVar39 + -0x5ae8);
              puVar28 = puVar27;
              do {
                if (iVar46 == 0x10) {
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);
                  if (fVar59 <= 0.0) {
                    uVar44 = 0;
                    uVar45 = 0;
                  }
                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {
                    dVar58 = (double)fVar59 + dVar56;
                    if (dVar58 < dVar65) {
                      uVar60 = (undefined2)(int)dVar58;
                    }
                    else {
                      uVar60 = (undefined2)(int)(dVar58 - dVar65);
                    }
                    uVar45 = (undefined1)((ushort)uVar60 >> 8);
                    uVar44 = (undefined1)uVar60;
                  }
                  else {
                    uVar44 = 0xff;
                    uVar45 = 0xff;
                  }
                  *puVar28 = uVar45;
                  puVar28[1] = uVar44;
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);
                  if (fVar59 <= 0.0) {
                    uVar44 = 0;
                    uVar45 = 0;
                  }
                  else if (fVar59 < *(float *)(iVar42 + 0x1a50)) {
                    dVar58 = (double)fVar59 + dVar56;
                    if (dVar58 < dVar65) {
                      uVar60 = (undefined2)(int)dVar58;
                    }
                    else {
                      uVar60 = (undefined2)(int)(dVar58 - dVar65);
                    }
                    uVar45 = (undefined1)((ushort)uVar60 >> 8);
                    uVar44 = (undefined1)uVar60;
                  }
                  else {
                    uVar44 = 0xff;
                    uVar45 = 0xff;
                  }
                  puVar28[2] = uVar45;
                  puVar28[3] = uVar44;
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);
                  if (fVar59 <= 0.0) {
                    uVar44 = 0;
                    uVar45 = 0;
                  }
                  else if (fVar59 < fVar62) {
                    dVar58 = (double)fVar59 + dVar67;
                    if (dVar58 < dVar66) {
                      uVar60 = (undefined2)(int)dVar58;
                    }
                    else {
                      uVar60 = (undefined2)(int)(dVar58 - dVar66);
                    }
                    uVar45 = (undefined1)((ushort)uVar60 >> 8);
                    uVar44 = (undefined1)uVar60;
                  }
                  else {
                    uVar44 = 0xff;
                    uVar45 = 0xff;
                  }
                  puVar28[4] = uVar45;
                  puVar29 = puVar28 + 6;
                  puVar28[5] = uVar44;
                }
                else if (iVar46 == 0x20) {
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);
                  if (fVar59 <= 0.0) {
                    uVar37 = 0;
                    uVar44 = 0;
                    uVar45 = 0;
                    uVar52 = 0;
                  }
                  else {
                    dVar58 = (double)fVar59 * *(double *)(iVar43 + -0x5b00);
                    uVar37 = 0xff;
                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {
                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);
                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {
                        uVar36 = (uint)dVar58;
                      }
                      else {
                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;
                      }
                      uVar52 = (undefined1)(uVar36 >> 0x18);
                      uVar45 = (undefined1)(uVar36 >> 0x10);
                      uVar44 = (undefined1)(uVar36 >> 8);
                      uVar37 = (undefined1)uVar36;
                    }
                    else {
                      uVar44 = 0xff;
                      uVar45 = 0xff;
                      uVar52 = 0xff;
                    }
                  }
                  *puVar28 = uVar52;
                  puVar28[1] = uVar45;
                  puVar28[2] = uVar44;
                  puVar28[3] = uVar37;
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);
                  if (fVar59 <= 0.0) {
                    uVar37 = 0;
                    uVar44 = 0;
                    uVar45 = 0;
                    uVar52 = 0;
                  }
                  else {
                    dVar58 = (double)fVar59 * dVar57;
                    uVar37 = 0xff;
                    if (dVar58 < *(double *)(iVar41 + -0x5af8)) {
                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);
                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {
                        uVar36 = (uint)dVar58;
                      }
                      else {
                        uVar36 = (int)(dVar58 - *(double *)(iVar51 + 0x1410)) | 0x80000000;
                      }
                      uVar52 = (undefined1)(uVar36 >> 0x18);
                      uVar45 = (undefined1)(uVar36 >> 0x10);
                      uVar44 = (undefined1)(uVar36 >> 8);
                      uVar37 = (undefined1)uVar36;
                    }
                    else {
                      uVar44 = 0xff;
                      uVar45 = 0xff;
                      uVar52 = 0xff;
                    }
                  }
                  puVar28[4] = uVar52;
                  puVar28[5] = uVar45;
                  puVar28[6] = uVar44;
                  puVar28[7] = uVar37;
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);
                  if (fVar59 <= 0.0) {
                    uVar37 = 0;
                    uVar44 = 0;
                    uVar45 = 0;
                    uVar52 = 0;
                  }
                  else {
                    dVar58 = (double)fVar59 * dVar57;
                    uVar44 = 0xff;
                    if (dVar58 < dVar63) {
                      dVar58 = dVar58 + dVar56;
                      if (dVar58 < dVar65) {
                        uVar36 = (uint)dVar58;
                      }
                      else {
                        uVar36 = (int)(dVar58 - dVar65) | 0x80000000;
                      }
                      uVar52 = (undefined1)uVar36;
                      uVar45 = (undefined1)(uVar36 >> 8);
                      uVar44 = (undefined1)(uVar36 >> 0x10);
                      uVar37 = (undefined1)(uVar36 >> 0x18);
                    }
                    else {
                      uVar37 = 0xff;
                      uVar45 = 0xff;
                      uVar52 = 0xff;
                    }
                  }
                  puVar28[8] = uVar37;
                  puVar29 = puVar28 + 0xc;
                  puVar28[9] = uVar44;
                  puVar28[10] = uVar45;
                  puVar28[0xb] = uVar52;
                }
                else {
                  if (iVar46 != 8) {
                    (**(code **)(puVar54 + 0x1539fc))(puVar27);
                    puVar8 = (ushort *)0x5ca;
                    (**(code **)(puVar54 + 0x15395c))
                              (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,
                               *(int *)(puVar54 + 0x153388) + -0x7284,0x5ca,0x1a9,
                               *(int *)(puVar54 + 0x153320) + -0x5aa8,
                               *(int *)(puVar54 + 0x15331c) + 0x3e28,puVar50 + 0x1a0);
                    if (*(int *)(iVar10 + 0xc) == 0) {
                      (**(code **)(puVar54 + 0x1540c4))(puVar50);
                    }
                    else {
                      do {
                        puVar38 = puVar50;
                        puVar50 = *(ushort **)(puVar38 + 0x19b2);
                      } while (puVar50 != (ushort *)0x0);
                      (**(code **)(puVar54 + 0x1540c4))(puVar38);
                    }
                    goto LAB_0025569c;
                  }
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x28);
                  if (fVar59 <= 0.0) {
                    uVar45 = 0;
                  }
                  else {
                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);
                    uVar45 = 0xff;
                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {
                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);
                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {
                        uVar45 = (undefined1)(int)dVar58;
                      }
                      else {
                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));
                      }
                    }
                  }
                  *puVar28 = uVar45;
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x30);
                  if (fVar59 <= 0.0) {
                    uVar45 = 0;
                  }
                  else {
                    dVar58 = (double)fVar59 / *(double *)(iVar40 + -0x5af0);
                    uVar45 = 0xff;
                    if (dVar58 < *(double *)(iVar39 + -0x5ae8)) {
                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);
                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {
                        uVar45 = (undefined1)(int)dVar58;
                      }
                      else {
                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));
                      }
                    }
                  }
                  puVar28[1] = uVar45;
                  fVar59 = (float)*(double *)(*(int *)(puVar50 + 0x14) + iVar32 + 0x38);
                  if (fVar59 <= 0.0) {
                    puVar29 = puVar28 + 3;
                    puVar28[2] = 0;
                  }
                  else {
                    dVar58 = (double)fVar59 / dVar61;
                    if (dVar58 < dVar64) {
                      dVar58 = dVar58 + *(double *)(iVar49 + 0x1400);
                      if (dVar58 < *(double *)(iVar51 + 0x1410)) {
                        uVar45 = (undefined1)(int)dVar58;
                      }
                      else {
                        uVar45 = (undefined1)(int)(dVar58 - *(double *)(iVar51 + 0x1410));
                      }
                      puVar28[2] = uVar45;
                      puVar29 = puVar28 + 3;
                    }
                    else {
                      puVar29 = puVar28 + 3;
                      puVar28[2] = 0xff;
                    }
                  }
                }
                iVar24 = *(int *)(puVar50 + 0x12);
                iVar34 = iVar34 + 1;
                iVar32 = iVar32 + 0x58;
                puVar28 = puVar29;
              } while (iVar34 < iVar24);
            }
            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar13 * iVar24,puVar27);
            (**(code **)(puVar54 + 0x1539fc))(puVar27);
          }
          pcVar55 = *(code **)(puVar54 + 0x1537fc);
        }
        else {
          (**(code **)(puVar54 + 0x1538c8))(puVar50);
          while( true ) {
            iVar24 = (**(code **)(puVar54 + 0x153948))(puVar50);
            if (iVar24 == 0) break;
            uVar48 = (**(code **)(puVar54 + 0x153e14))(puVar50,iVar24);
            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);
            (**(code **)(puVar54 + 0x153d10))(puVar50,uVar23);
            uVar23 = (**(code **)(puVar54 + 0x153784))(uVar48);
            uVar48 = (**(code **)(puVar54 + 0x1538a4))(uVar48);
            (**(code **)(puVar54 + 0x1543d0))(puVar50,uVar23,uVar48);
          }
          pcVar55 = *(code **)(puVar54 + 0x1537fc);
          if (*(int *)puVar50 == 2) goto LAB_002561e8;
        }
        puVar8 = (ushort *)&uStack_5150;
        iVar46 = (*pcVar55)(puVar50,auStack_4144,0,puVar8,puVar38);
        if (iVar46 == 0) {
          puVar8 = (ushort *)0x605;
          (**(code **)(puVar54 + 0x15395c))
                    (puVar38,*(int *)(puVar54 + 0x153388) + -0x74dc,
                     *(int *)(puVar54 + 0x153388) + -0x7284,0x605,0x1bd,
                     *(int *)(puVar54 + 0x153388) + -0x7450,*(int *)(puVar54 + 0x15331c) + 0x3e28,
                     puVar50 + 0x1a0);
          puVar38 = puVar50;
          if (*(int *)(iVar10 + 0xc) == 0) {
            pcVar55 = *(code **)(puVar54 + 0x1540c4);
          }
          else {
            do {
              puVar50 = puVar38;
              pcVar55 = *(code **)(puVar54 + 0x1540c4);
              puVar38 = *(ushort **)(puVar50 + 0x19b2);
            } while (*(ushort **)(puVar50 + 0x19b2) != (ushort *)0x0);
          }
          goto LAB_00255ea8;
        }
        iVar24 = (**(code **)(puVar54 + 0x153eac))(puVar50);
        if (iVar24 == 0) break;
        puVar50 = (ushort *)(**(code **)(puVar54 + 0x153e44))(puVar50);
        if (*(code **)(puVar50 + 0x194) != (code *)0x0) {
          puVar8 = puStack_5188;
          iVar46 = (**(code **)(puVar50 + 0x194))(*(int *)(puVar54 + 0x153328) + -0x150);
          if (iVar46 == 0) break;
        }
        puStack_5188 = (ushort *)((int)puStack_5188 + 1);
      } while (*(int *)(iVar10 + 0xc) != 0);
      pcVar55 = *(code **)(puVar54 + 0x1540c4);
LAB_00255ea8:
      (*pcVar55)(puVar50);
    }
    if (iStack_3144 == *piVar18) {
      return iVar46;
    }
    (**(code **)(puVar54 + 0x153aa0))();
  }
  iVar10 = (**(code **)(puVar54 + 0x154044))
                     (*(int *)(puVar54 + 0x15331c) + 0xdd0,*(int *)(puVar54 + 0x153388) + -0x74dc,
                      0x485,puVar8 + -0x393a);
  return iVar10;
LAB_00255f3c:
  do {
    if (*pbVar25 == 0x7d) {
      (**(code **)(puVar54 + 0x153a18))(puVar50,0x5c);
      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);
    }
    else {
      (**(code **)(puVar54 + 0x153a18))(puVar50,*pbVar25);
    }
    pbVar25 = pbVar25 + 1;
  } while (pbVar25 != pbVar53);
LAB_00255f78:
  (**(code **)(puVar54 + 0x153a18))(puVar50,0x7d);
LAB_00255d60:
  (**(code **)(puVar54 + 0x153a18))(puVar50,10);
  puVar9 = (ushort *)(**(code **)(puVar54 + 0x1542fc))(puVar50);
  if (puVar9 == (ushort *)0x0) goto LAB_00255d8c;
  goto LAB_00255c90;
}

